From 63b23c2eadac7e9380ee297d584b3daa46943dd8 Mon Sep 17 00:00:00 2001 From: Packit Service Date: Dec 10 2020 11:41:50 +0000 Subject: Apply patch diffutils-3.6-covscan.patch patch_name: diffutils-3.6-covscan.patch present_in_specfile: true --- diff --git a/lib/quotearg.c b/lib/quotearg.c index f657033..a4fcc2e 100644 --- a/lib/quotearg.c +++ b/lib/quotearg.c @@ -886,8 +886,9 @@ quotearg_n_options (int n, char const *arg, size_t argsize, if (nslots <= n) { bool preallocated = (sv == &slotvec0); - - if (MIN (INT_MAX, MIN (PTRDIFF_MAX, SIZE_MAX) / sizeof *sv) <= n) + int nmax = MIN (INT_MAX, MIN (PTRDIFF_MAX, SIZE_MAX) / sizeof *sv) - 1; + + if (nmax < n) xalloc_die (); slotvec = sv = xrealloc (preallocated ? NULL : sv, (n + 1) * sizeof *sv); diff --git a/src/diff.h b/src/diff.h index a438a8e..e5f1218 100644 --- a/src/diff.h +++ b/src/diff.h @@ -392,7 +392,7 @@ extern void print_sdiff_script (struct change *); extern char const change_letter[4]; extern char const pr_program[]; extern char *concat (char const *, char const *, char const *); -extern bool (*lines_differ) (char const *, size_t, char const *, size_t) _GL_ATTRIBUTE_PURE; +extern bool (*lines_differ) (char const *, size_t, char const *, size_t); extern bool lines_differ_singlebyte (char const *, size_t, char const *, size_t) _GL_ATTRIBUTE_PURE; #ifdef HANDLE_MULTIBYTE extern bool lines_differ_multibyte (char const *, size_t, char const *, size_t) _GL_ATTRIBUTE_PURE; diff --git a/src/ifdef.c b/src/ifdef.c index c7dae8d..648b378 100644 --- a/src/ifdef.c +++ b/src/ifdef.c @@ -362,20 +362,14 @@ do_printf_spec (FILE *out, char const *spec, printint print_value = value; size_t spec_prefix_len = f - spec - 2; size_t pI_len = sizeof pI - 1; -#if 0 - char format[spec_prefix_len + pI_len + 2]; -#else char *format = xmalloc (spec_prefix_len + pI_len + 2); -#endif char *p = format + spec_prefix_len + pI_len; memcpy (format, spec, spec_prefix_len); memcpy (format + spec_prefix_len, pI, pI_len); *p++ = c; *p = '\0'; fprintf (out, format, print_value); -#if ! HAVE_C_VARARRAYS free (format); -#endif } } break; diff --git a/src/sdiff.c b/src/sdiff.c index 1ae3dcb..78a44c4 100644 --- a/src/sdiff.c +++ b/src/sdiff.c @@ -230,8 +230,10 @@ cleanup (int signo __attribute__((unused))) if (0 < diffpid) kill (diffpid, SIGPIPE); #endif - if (tmpname) + if (tmpname) { unlink (tmpname); + free (tmpname); + } } static void exiterr (void) __attribute__((noreturn)); @@ -685,6 +687,7 @@ main (int argc, char *argv[]) if (tmpname) { unlink (tmpname); + free (tmpname); tmpname = 0; }