binutils/SOURCES/binutils-coverity-fixes.patch

2308 lines
91 KiB
Diff

--- binutils.orig/bfd/archive.c 2019-10-04 15:26:08.544327573 +0100
+++ binutils-2.30/bfd/archive.c 2019-10-04 16:58:45.088039134 +0100
@@ -734,6 +734,9 @@ _bfd_get_elt_at_filepos (bfd *archive, f
/* Copy is_linker_input. */
n_bfd->is_linker_input = archive->is_linker_input;
+ /* Coverity does not realise that _bfd_add_bfd_to_archive_cache actually
+ stores the newly created bfd and so flags a resource leak. */
+ /* coverity[noescape: FALSE] */
if (_bfd_add_bfd_to_archive_cache (archive, filepos, n_bfd))
return n_bfd;
diff -rup binutils.orig/bfd/coffcode.h binutils-2.30/bfd/coffcode.h
--- binutils.orig/bfd/coffcode.h 2019-10-07 15:49:39.425618524 +0100
+++ binutils-2.30/bfd/coffcode.h 2019-10-07 15:53:18.335157361 +0100
@@ -3737,6 +3737,9 @@ coff_write_object_contents (bfd * abfd)
internal_f.f_nscns++;
+ /* Coverity flags this strncpy as possibly creating a string
+ that is not NUL terminated. This is in fact OK. */
+ /* coverity[buffer_size_warning: FALSE] */
strncpy (section.s_name, current->name, SCNNMLEN);
#ifdef COFF_LONG_SECTION_NAMES
@@ -3775,6 +3778,9 @@ coff_write_object_contents (bfd * abfd)
buffer, just in case. */
sprintf (s_name_buf, "/%lu", (unsigned long) string_size);
/* Then strncpy takes care of any padding for us. */
+ /* Coverity flags this strncpy as possibly creating a string
+ that is not NUL terminated. This is in fact OK. */
+ /* coverity[buffer_size_warning: FALSE] */
strncpy (section.s_name, s_name_buf, SCNNMLEN);
string_size += len + 1;
long_section_names = TRUE;
diff -rup binutils.orig/bfd/coffgen.c binutils-2.30/bfd/coffgen.c
--- binutils.orig/bfd/coffgen.c 2019-10-07 15:49:37.845629069 +0100
+++ binutils-2.30/bfd/coffgen.c 2019-10-07 15:53:46.443969714 +0100
@@ -923,6 +923,9 @@ coff_fix_symbol_name (bfd *abfd,
{
if (name_length <= SYMNMLEN && !bfd_coff_force_symnames_in_strings (abfd))
/* This name will fit into the symbol neatly. */
+ /* Coverity flags this strncpy as possibly creating a string
+ that is not NUL terminated. This is in fact OK. */
+ /* coverity[buffer_size_warning: FALSE] */
strncpy (native->u.syment._n._n_name, symbol->name, SYMNMLEN);
else if (!bfd_coff_symname_in_debug (abfd, &native->u.syment))
diff -rup binutils.orig/bfd/cofflink.c binutils-2.30/bfd/cofflink.c
--- binutils.orig/bfd/cofflink.c 2019-10-07 15:49:37.565630938 +0100
+++ binutils-2.30/bfd/cofflink.c 2019-10-07 15:54:21.177736099 +0100
@@ -2633,6 +2633,9 @@ _bfd_coff_write_global_sym (struct bfd_h
}
if (strlen (h->root.root.string) <= SYMNMLEN)
+ /* Coverity flags this strncpy as possibly creating a string
+ that is not NUL terminated. This is in fact OK. */
+ /* coverity[buffer_size_warning: FALSE] */
strncpy (isym._n._n_name, h->root.root.string, SYMNMLEN);
else
{
diff -rup binutils.orig/bfd/elf64-x86-64.c binutils-2.30/bfd/elf64-x86-64.c
--- binutils.orig/bfd/elf64-x86-64.c 2019-10-07 15:49:38.144627073 +0100
+++ binutils-2.30/bfd/elf64-x86-64.c 2019-10-07 15:56:53.559674302 +0100
@@ -463,7 +463,13 @@ elf_x86_64_write_core_note (bfd *abfd, c
{
prpsinfo32_t data;
memset (&data, 0, sizeof (data));
+ /* Coverity flags this strncpy as possibly creating a string
+ that is not NUL terminated. This is in fact OK. */
+ /* coverity[buffer_size_warning: FALSE] */
strncpy (data.pr_fname, fname, sizeof (data.pr_fname));
+ /* Coverity flags this strncpy as possibly creating a string
+ that is not NUL terminated. This is in fact OK. */
+ /* coverity[buffer_size_warning: FALSE] */
strncpy (data.pr_psargs, psargs, sizeof (data.pr_psargs));
return elfcore_write_note (abfd, buf, bufsiz, "CORE", note_type,
&data, sizeof (data));
@@ -472,7 +478,13 @@ elf_x86_64_write_core_note (bfd *abfd, c
{
prpsinfo64_t data;
memset (&data, 0, sizeof (data));
+ /* Coverity flags this strncpy as possibly creating a string
+ that is not NUL terminated. This is in fact OK. */
+ /* coverity[buffer_size_warning: FALSE] */
strncpy (data.pr_fname, fname, sizeof (data.pr_fname));
+ /* Coverity flags this strncpy as possibly creating a string
+ that is not NUL terminated. This is in fact OK. */
+ /* coverity[buffer_size_warning: FALSE] */
strncpy (data.pr_psargs, psargs, sizeof (data.pr_psargs));
return elfcore_write_note (abfd, buf, bufsiz, "CORE", note_type,
&data, sizeof (data));
diff -rup binutils.orig/bfd/elf.c binutils-2.30/bfd/elf.c
--- binutils.orig/bfd/elf.c 2019-10-07 15:49:37.616630597 +0100
+++ binutils-2.30/bfd/elf.c 2019-10-07 15:56:16.776930603 +0100
@@ -10549,7 +10549,13 @@ elfcore_write_prpsinfo (bfd *abfd,
#endif
memset (&data, 0, sizeof (data));
+ /* Coverity flags this strncpy as possibly creating a string
+ that is not NUL terminated. This is in fact OK. */
+ /* coverity[buffer_size_warning: FALSE] */
strncpy (data.pr_fname, fname, sizeof (data.pr_fname));
+ /* Coverity flags this strncpy as possibly creating a string
+ that is not NUL terminated. This is in fact OK. */
+ /* coverity[buffer_size_warning: FALSE] */
strncpy (data.pr_psargs, psargs, sizeof (data.pr_psargs));
return elfcore_write_note (abfd, buf, bufsiz,
"CORE", note_type, &data, sizeof (data));
@@ -10566,7 +10572,13 @@ elfcore_write_prpsinfo (bfd *abfd,
#endif
memset (&data, 0, sizeof (data));
+ /* Coverity flags this strncpy as possibly creating a string
+ that is not NUL terminated. This is in fact OK. */
+ /* coverity[buffer_size_warning: FALSE] */
strncpy (data.pr_fname, fname, sizeof (data.pr_fname));
+ /* Coverity flags this strncpy as possibly creating a string
+ that is not NUL terminated. This is in fact OK. */
+ /* coverity[buffer_size_warning: FALSE] */
strncpy (data.pr_psargs, psargs, sizeof (data.pr_psargs));
return elfcore_write_note (abfd, buf, bufsiz,
"CORE", note_type, &data, sizeof (data));
diff -rup binutils.orig/bfd/elf-linux-core.h binutils-2.30/bfd/elf-linux-core.h
--- binutils.orig/bfd/elf-linux-core.h 2019-10-07 15:49:37.744629743 +0100
+++ binutils-2.30/bfd/elf-linux-core.h 2019-10-07 15:55:43.976159158 +0100
@@ -69,7 +69,13 @@ swap_linux_prpsinfo32_ugid32_out
bfd_put_32 (obfd, from->pr_ppid, to->pr_ppid);
bfd_put_32 (obfd, from->pr_pgrp, to->pr_pgrp);
bfd_put_32 (obfd, from->pr_sid, to->pr_sid);
+ /* Coverity flags this strncpy as possibly creating a string
+ that is not NUL terminated. This is in fact OK. */
+ /* coverity[buffer_size_warning: FALSE] */
strncpy (to->pr_fname, from->pr_fname, sizeof (to->pr_fname));
+ /* Coverity flags this strncpy as possibly creating a string
+ that is not NUL terminated. This is in fact OK. */
+ /* coverity[buffer_size_warning: FALSE] */
strncpy (to->pr_psargs, from->pr_psargs, sizeof (to->pr_psargs));
}
@@ -121,7 +127,13 @@ swap_linux_prpsinfo32_ugid16_out
bfd_put_32 (obfd, from->pr_ppid, to->pr_ppid);
bfd_put_32 (obfd, from->pr_pgrp, to->pr_pgrp);
bfd_put_32 (obfd, from->pr_sid, to->pr_sid);
+ /* Coverity flags this strncpy as possibly creating a string
+ that is not NUL terminated. This is in fact OK. */
+ /* coverity[buffer_size_warning: FALSE] */
strncpy (to->pr_fname, from->pr_fname, sizeof (to->pr_fname));
+ /* Coverity flags this strncpy as possibly creating a string
+ that is not NUL terminated. This is in fact OK. */
+ /* coverity[buffer_size_warning: FALSE] */
strncpy (to->pr_psargs, from->pr_psargs, sizeof (to->pr_psargs));
}
@@ -174,7 +186,13 @@ swap_linux_prpsinfo64_ugid32_out
bfd_put_32 (obfd, from->pr_ppid, to->pr_ppid);
bfd_put_32 (obfd, from->pr_pgrp, to->pr_pgrp);
bfd_put_32 (obfd, from->pr_sid, to->pr_sid);
+ /* Coverity flags this strncpy as possibly creating a string
+ that is not NUL terminated. This is in fact OK. */
+ /* coverity[buffer_size_warning: FALSE] */
strncpy (to->pr_fname, from->pr_fname, sizeof (to->pr_fname));
+ /* Coverity flags this strncpy as possibly creating a string
+ that is not NUL terminated. This is in fact OK. */
+ /* coverity[buffer_size_warning: FALSE] */
strncpy (to->pr_psargs, from->pr_psargs, sizeof (to->pr_psargs));
}
@@ -227,7 +245,13 @@ swap_linux_prpsinfo64_ugid16_out
bfd_put_32 (obfd, from->pr_ppid, to->pr_ppid);
bfd_put_32 (obfd, from->pr_pgrp, to->pr_pgrp);
bfd_put_32 (obfd, from->pr_sid, to->pr_sid);
+ /* Coverity flags this strncpy as possibly creating a string
+ that is not NUL terminated. This is in fact OK. */
+ /* coverity[buffer_size_warning: FALSE] */
strncpy (to->pr_fname, from->pr_fname, sizeof (to->pr_fname));
+ /* Coverity flags this strncpy as possibly creating a string
+ that is not NUL terminated. This is in fact OK. */
+ /* coverity[buffer_size_warning: FALSE] */
strncpy (to->pr_psargs, from->pr_psargs, sizeof (to->pr_psargs));
}
diff -rup binutils.orig/bfd/peXXigen.c binutils-2.30/bfd/peXXigen.c
--- binutils.orig/bfd/peXXigen.c 2019-10-07 15:49:37.695630070 +0100
+++ binutils-2.30/bfd/peXXigen.c 2019-10-07 16:02:02.117524278 +0100
@@ -385,7 +385,7 @@ _bfd_XXi_swap_aux_out (bfd * abfd,
H_PUT_32 (abfd, in->x_file.x_n.x_offset, ext->x_file.x_n.x_offset);
}
else
- memcpy (ext->x_file.x_fname, in->x_file.x_fname, FILNMLEN);
+ memcpy (ext->x_file.x_fname, in->x_file.x_fname, E_FILNMLEN);
return AUXESZ;
diff -rup binutils.orig/ld/pe-dll.c binutils-2.30/ld/pe-dll.c
--- binutils.orig/ld/pe-dll.c 2019-10-07 15:48:49.851949423 +0100
+++ binutils-2.30/ld/pe-dll.c 2019-10-07 16:04:09.055639773 +0100
@@ -2929,7 +2929,7 @@ pe_find_cdecl_alias_match (struct bfd_li
if (pe_details->underscored)
lname[0] = '_';
else
- strcpy (lname, lname + 1);
+ memmove (lname, lname + 1, strlen (lname) + 1);
key.key = lname;
kv = bsearch (&key, udef_table, undef_count,
sizeof (struct key_value), undef_sort_cmp);
diff -rup binutils.orig/libiberty/sha1.c binutils-2.30/libiberty/sha1.c
--- binutils.orig/libiberty/sha1.c 2019-10-07 15:49:37.016634602 +0100
+++ binutils-2.30/libiberty/sha1.c 2019-10-07 16:04:41.788411691 +0100
@@ -258,7 +258,7 @@ sha1_process_bytes (const void *buffer,
{
sha1_process_block (ctx->buffer, 64, ctx);
left_over -= 64;
- memcpy (ctx->buffer, &ctx->buffer[16], left_over);
+ memmove (ctx->buffer, &ctx->buffer[16], left_over);
}
ctx->buflen = left_over;
}
diff -rup binutils.orig/bfd/cofflink.c binutils-2.30/bfd/cofflink.c
--- binutils.orig/bfd/cofflink.c 2019-10-07 17:01:58.787679337 +0100
+++ binutils-2.30/bfd/cofflink.c 2019-10-07 17:02:20.641529805 +0100
@@ -1406,6 +1406,8 @@ mark_relocs (struct coff_final_link_info
for (; irel < irelend; irel++)
if ((unsigned long) irel->r_symndx < obj_raw_syment_count (input_bfd))
flaginfo->sym_indices[irel->r_symndx] = -1;
+ /* There is a potential resource leak here, but it is not important. */
+ /* coverity[leaked_storage: FALSE] */
}
}
diff -rup binutils.orig/bfd/doc/chew.c binutils-2.30/bfd/doc/chew.c
--- binutils.orig/bfd/doc/chew.c 2019-10-07 17:01:58.796679276 +0100
+++ binutils-2.30/bfd/doc/chew.c 2019-10-07 17:04:21.265720634 +0100
@@ -1264,6 +1264,7 @@ free_words (void)
if (ptr->code[i] == push_text
&& ptr->code[i + 1])
{
+ /* coverity[fnptr_free: FALSE] */
free (ptr->code[i + 1] - 1);
++ i;
}
@@ -1387,6 +1388,7 @@ compile (string)
ptr = newentry (word);
string = nextword (string, &word);
+ /* coverity[use_after_free: FALSE] */
while (word[0] != ';')
{
switch (word[0])
diff -rup binutils.orig/bfd/elflink.c binutils-2.30/bfd/elflink.c
--- binutils.orig/bfd/elflink.c 2019-10-07 17:01:58.779679392 +0100
+++ binutils-2.30/bfd/elflink.c 2019-10-07 17:04:57.025483171 +0100
@@ -10579,6 +10579,8 @@ elf_link_input_bfd (struct elf_final_lin
"that references a non-existent global symbol"),
input_bfd, rel->r_info, o);
bfd_set_error (bfd_error_bad_value);
+ /* There is a potential resource leak here, but it is not important. */
+ /* coverity[leaked_storage: FALSE] */
return FALSE;
}
diff -rup binutils.orig/bfd/peXXigen.c binutils-2.30/bfd/peXXigen.c
--- binutils.orig/bfd/peXXigen.c 2019-10-07 17:01:58.784679358 +0100
+++ binutils-2.30/bfd/peXXigen.c 2019-10-07 17:07:22.047520136 +0100
@@ -385,7 +385,9 @@ _bfd_XXi_swap_aux_out (bfd * abfd,
H_PUT_32 (abfd, in->x_file.x_n.x_offset, ext->x_file.x_n.x_offset);
}
else
- memcpy (ext->x_file.x_fname, in->x_file.x_fname, E_FILNMLEN);
+ /* Coverity gets confused about the size of these buffers. */
+ /* coverity[buffer_size: FALSE] */
+ memcpy (ext->x_file.x_fname, in->x_file.x_fname, FILNMLEN);
return AUXESZ;
@@ -4343,6 +4345,8 @@ rsrc_process_section (bfd * abfd,
/* FIXME: Free the resource tree, if we have one. */
free (datastart);
free (rsrc_sizes);
+ /* There is a potential resource leak here, but it is not important. */
+ /* coverity[leaked_storage: FALSE] */
}
/* Handle the .idata section and other things that need symbol table
diff -rup binutils.orig/bfd/plugin.c binutils-2.30/bfd/plugin.c
--- binutils.orig/bfd/plugin.c 2019-10-07 17:01:58.780679385 +0100
+++ binutils-2.30/bfd/plugin.c 2019-10-07 17:07:45.871361935 +0100
@@ -403,9 +403,13 @@ try_load_plugin (const char *pname, bfd
abfd->plugin_format = bfd_plugin_yes;
+ /* There is a potential resource leak here, but it is not important. */
+ /* coverity[leaked_storage: FALSE] */
return 1;
err:
+ /* There is a potential resource leak here, but it is not important. */
+ /* coverity[leaked_storage: FALSE] */
return 0;
}
diff -rup binutils.orig/bfd/stabs.c binutils-2.30/bfd/stabs.c
--- binutils.orig/bfd/stabs.c 2019-10-07 17:01:58.778679399 +0100
+++ binutils-2.30/bfd/stabs.c 2019-10-07 17:08:14.655170795 +0100
@@ -377,6 +377,8 @@ _bfd_link_section_stabs (bfd *abfd,
amt = sizeof *ne;
ne = (struct stab_excl_list *) bfd_alloc (abfd, amt);
if (ne == NULL)
+ /* There is a potential resource leak here, but it is not important. */
+ /* coverity[leaked_storage: FALSE] */
goto error_return;
ne->offset = sym - stabbuf;
ne->val = sum_chars;
diff -rup binutils.orig/binutils/ar.c binutils-2.30/binutils/ar.c
--- binutils.orig/binutils/ar.c 2019-10-07 17:01:57.998684736 +0100
+++ binutils-2.30/binutils/ar.c 2019-10-07 17:10:18.109350993 +0100
@@ -228,6 +228,8 @@ map_over_members (bfd *arch, void (*func
filename = normalize (filename, arch);
}
+ /* There is a potential resource leak here, but it is not important. */
+ /* coverity[leaked_storage: FALSE] */
if (filename != NULL
&& !FILENAME_CMP (normalize (*files, arch), filename))
{
@@ -237,6 +239,8 @@ map_over_members (bfd *arch, void (*func
{
/* Counting, and didn't match on count; go on to the
next one. */
+ /* There is a potential resource leak here, but it is not important. */
+ /* coverity[leaked_storage: FALSE] */
continue;
}
@@ -250,6 +254,8 @@ map_over_members (bfd *arch, void (*func
to the ar command. */
break;
}
+ /* There is a potential resource leak here, but it is not important. */
+ /* coverity[leaked_storage: FALSE] */
}
if (!found)
@@ -1268,6 +1274,8 @@ delete_members (bfd *arch, char **files_
current_ptr_ptr = &(arch->archive_next);
while (*current_ptr_ptr)
{
+ /* There is a potential resource leak here, but it is not important. */
+ /* coverity[leaked_storage: FALSE] */
if (FILENAME_CMP (normalize (*files_to_delete, arch),
(*current_ptr_ptr)->filename) == 0)
{
@@ -1323,6 +1331,8 @@ move_members (bfd *arch, char **files_to
while (*current_ptr_ptr)
{
bfd *current_ptr = *current_ptr_ptr;
+ /* There is a potential resource leak here, but it is not important. */
+ /* coverity[leaked_storage: FALSE] */
if (FILENAME_CMP (normalize (*files_to_move, arch),
current_ptr->filename) == 0)
{
@@ -1375,6 +1385,8 @@ replace_members (bfd *arch, char **files
/* For compatibility with existing ar programs, we
permit the same file to be added multiple times. */
+ /* There is a potential resource leak here, but it is not important. */
+ /* coverity[leaked_storage: FALSE] */
if (FILENAME_CMP (normalize (*files_to_move, arch),
normalize (current->filename, arch)) == 0
&& current->arelt_data != NULL)
diff -rup binutils.orig/binutils/arparse.c binutils-2.30/binutils/arparse.c
--- binutils.orig/binutils/arparse.c 2019-10-07 17:01:58.003684702 +0100
+++ binutils-2.30/binutils/arparse.c 2019-10-07 17:10:55.998099392 +0100
@@ -1193,6 +1193,8 @@ yyparse (void)
# undef YYSTACK_RELOCATE
if (yyss1 != yyssa)
YYSTACK_FREE (yyss1);
+ /* There is a potential resource leak here, but it is not important. */
+ /* coverity[leaked_storage: FALSE] */
}
# endif
#endif /* no yyoverflow */
diff -rup binutils.orig/binutils/arsup.c binutils-2.30/binutils/arsup.c
--- binutils.orig/binutils/arsup.c 2019-10-07 17:01:58.006684681 +0100
+++ binutils-2.30/binutils/arsup.c 2019-10-07 17:11:21.789928112 +0100
@@ -209,6 +209,8 @@ ar_open (char *name, int t)
obfd->has_armap = 1;
obfd->is_thin_archive = 0;
}
+ /* There is a potential resource leak here, but it is not important. */
+ /* coverity[leaked_storage: FALSE] */
}
static void
diff -rup binutils.orig/binutils/dwarf.c binutils-2.30/binutils/dwarf.c
--- binutils.orig/binutils/dwarf.c 2019-10-07 17:01:57.958685010 +0100
+++ binutils-2.30/binutils/dwarf.c 2019-10-07 17:13:31.950063779 +0100
@@ -4098,6 +4098,8 @@ display_debug_lines_decoded (struct dwar
if (data == end)
{
warn (_("Corrupt file name list\n"));
+ /* There is a potential resource leak here, but it is not important. */
+ /* coverity[leaked_storage: FALSE] */
break;
}
@@ -4234,6 +4236,8 @@ display_debug_lines_decoded (struct dwar
{
warn (_("file table ends unexpectedly\n"));
n_files = 0;
+ /* There is a potential resource leak here, but it is not important. */
+ /* coverity[leaked_storage: FALSE] */
break;
}
@@ -7231,6 +7235,8 @@ read_cie (unsigned char *start, unsigned
if (start == end)
{
warn (_("No terminator for augmentation name\n"));
+ /* There is a potential resource leak here, but it is not important. */
+ /* coverity[leaked_storage: FALSE] */
return start;
}
@@ -7243,6 +7249,8 @@ read_cie (unsigned char *start, unsigned
if (fc->ptr_size < 1 || fc->ptr_size > 8)
{
warn (_("Invalid pointer size (%d) in CIE data\n"), fc->ptr_size);
+ /* There is a potential resource leak here, but it is not important. */
+ /* coverity[leaked_storage: FALSE] */
return end;
}
@@ -7251,6 +7259,8 @@ read_cie (unsigned char *start, unsigned
if (fc->segment_size > 8 || fc->segment_size + fc->ptr_size > 8)
{
warn (_("Invalid segment size (%d) in CIE data\n"), fc->segment_size);
+ /* There is a potential resource leak here, but it is not important. */
+ /* coverity[leaked_storage: FALSE] */
return end;
}
@@ -8305,6 +8315,8 @@ display_debug_frames (struct dwarf_secti
printf ("\n");
+ /* There is a potential resource leak here, but it is not important. */
+ /* coverity[leaked_storage: FALSE] */
return 1;
}
@@ -9733,6 +9745,8 @@ load_separate_debug_info (const char *
if (debugfile == NULL)
{
warn (_("Out of memory"));
+ /* There is a potential resource leak here, but it is not important. */
+ /* coverity[leaked_storage: FALSE] */
return NULL;
}
diff -rup binutils.orig/binutils/elfedit.c binutils-2.30/binutils/elfedit.c
--- binutils.orig/binutils/elfedit.c 2019-10-07 17:01:58.000684722 +0100
+++ binutils-2.30/binutils/elfedit.c 2019-10-07 17:13:51.916931183 +0100
@@ -468,6 +468,8 @@ process_archive (const char * file_name,
}
free (qualified_name);
+ /* There is a potential resource leak here, but it is not important. */
+ /* coverity[leaked_storage: FALSE] */
}
out:
diff -rup binutils.orig/binutils/ieee.c binutils-2.30/binutils/ieee.c
--- binutils.orig/binutils/ieee.c 2019-10-07 17:01:57.963684975 +0100
+++ binutils-2.30/binutils/ieee.c 2019-10-07 17:18:54.442922250 +0100
@@ -1503,6 +1503,8 @@ parse_ieee_ty (struct ieee_info *info, c
bfd_boolean present;
if (! ieee_read_optional_id (info, pp, &name, &namlen, &present))
+ /* There is a potential resource leak here, but it is not important. */
+ /* coverity[leaked_storage: FALSE] */
return FALSE;
if (! present)
break;
@@ -1516,6 +1518,8 @@ parse_ieee_ty (struct ieee_info *info, c
names[c] = savestring (name, namlen);
if (names[c] == NULL)
+ /* There is a potential resource leak here, but it is not important. */
+ /* coverity[leaked_storage: FALSE] */
return FALSE;
++c;
}
@@ -1554,12 +1558,16 @@ parse_ieee_ty (struct ieee_info *info, c
bfd_vma bitpos, bitsize;
if (! ieee_read_optional_id (info, pp, &name, &namlen, &present))
+ /* There is a potential resource leak here, but it is not important. */
+ /* coverity[leaked_storage: FALSE] */
return FALSE;
if (! present)
break;
if (! ieee_read_type_index (info, pp, &ftype)
|| ! ieee_read_number (info, pp, &bitpos)
|| ! ieee_read_number (info, pp, &bitsize))
+ /* There is a potential resource leak here, but it is not important. */
+ /* coverity[leaked_storage: FALSE] */
return FALSE;
if (c + 1 >= alloc)
@@ -1573,6 +1581,8 @@ parse_ieee_ty (struct ieee_info *info, c
ftype, bitpos, bitsize,
DEBUG_VISIBILITY_PUBLIC);
if (fields[c] == NULL)
+ /* There is a potential resource leak here, but it is not important. */
+ /* coverity[leaked_storage: FALSE] */
return FALSE;
++c;
}
@@ -1604,10 +1614,14 @@ parse_ieee_ty (struct ieee_info *info, c
bfd_vma val;
if (! ieee_read_optional_id (info, pp, &name, &namlen, &present))
+ /* There is a potential resource leak here, but it is not important. */
+ /* coverity[leaked_storage: FALSE] */
return FALSE;
if (! present)
break;
if (! ieee_read_number (info, pp, &val))
+ /* There is a potential resource leak here, but it is not important. */
+ /* coverity[leaked_storage: FALSE] */
return FALSE;
/* If the length of the name is zero, then the value is
@@ -1627,6 +1641,8 @@ parse_ieee_ty (struct ieee_info *info, c
names[c] = savestring (name, namlen);
if (names[c] == NULL)
+ /* There is a potential resource leak here, but it is not important. */
+ /* coverity[leaked_storage: FALSE] */
return FALSE;
vals[c] = (bfd_signed_vma) val;
++c;
@@ -1646,6 +1662,8 @@ parse_ieee_ty (struct ieee_info *info, c
debug_type t;
if (! ieee_read_type_index (info, pp, &t))
+ /* There is a potential resource leak here, but it is not important. */
+ /* coverity[leaked_storage: FALSE] */
return FALSE;
type = debug_make_pointer_type (dhandle, t);
}
@@ -1660,6 +1678,8 @@ parse_ieee_ty (struct ieee_info *info, c
|| ! ieee_read_number (info, pp, &high)
|| ! ieee_read_number (info, pp, &signedp)
|| ! ieee_read_number (info, pp, &size))
+ /* There is a potential resource leak here, but it is not important. */
+ /* coverity[leaked_storage: FALSE] */
return FALSE;
type = debug_make_range_type (dhandle,
@@ -1679,6 +1699,8 @@ parse_ieee_ty (struct ieee_info *info, c
unsigned int c;
if (! ieee_read_number (info, pp, &size))
+ /* There is a potential resource leak here, but it is not important. */
+ /* coverity[leaked_storage: FALSE] */
return FALSE;
alloc = 10;
@@ -1695,11 +1717,15 @@ parse_ieee_ty (struct ieee_info *info, c
bfd_vma bitsize;
if (! ieee_read_optional_id (info, pp, &name, &namlen, &present))
+ /* There is a potential resource leak here, but it is not important. */
+ /* coverity[leaked_storage: FALSE] */
return FALSE;
if (! present)
break;
if (! ieee_read_number (info, pp, &tindx)
|| ! ieee_read_number (info, pp, &offset))
+ /* There is a potential resource leak here, but it is not important. */
+ /* coverity[leaked_storage: FALSE] */
return FALSE;
if (tindx < 256)
@@ -1733,6 +1759,8 @@ parse_ieee_ty (struct ieee_info *info, c
ftype, offset, bitsize,
DEBUG_VISIBILITY_PUBLIC);
if (fields[c] == NULL)
+ /* There is a potential resource leak here, but it is not important. */
+ /* coverity[leaked_storage: FALSE] */
return FALSE;
++c;
}
@@ -1747,6 +1775,8 @@ parse_ieee_ty (struct ieee_info *info, c
case 'T':
/* Typedef. */
if (! ieee_read_type_index (info, pp, &type))
+ /* There is a potential resource leak here, but it is not important. */
+ /* coverity[leaked_storage: FALSE] */
return FALSE;
typdef = TRUE;
break;
@@ -1766,6 +1796,8 @@ parse_ieee_ty (struct ieee_info *info, c
if (! ieee_read_number (info, pp, &attr)
|| ! ieee_read_type_index (info, pp, &rtype)
|| ! ieee_read_number (info, pp, &nargs))
+ /* There is a potential resource leak here, but it is not important. */
+ /* coverity[leaked_storage: FALSE] */
return FALSE;
do
{
@@ -1773,6 +1805,8 @@ parse_ieee_ty (struct ieee_info *info, c
unsigned long namlen;
if (! ieee_read_optional_id (info, pp, &name, &namlen, &present))
+ /* There is a potential resource leak here, but it is not important. */
+ /* coverity[leaked_storage: FALSE] */
return FALSE;
}
while (present);
@@ -1810,6 +1844,8 @@ parse_ieee_ty (struct ieee_info *info, c
if (! ieee_read_type_index (info, pp, &etype)
|| ! ieee_read_number (info, pp, &high))
+ /* There is a potential resource leak here, but it is not important. */
+ /* coverity[leaked_storage: FALSE] */
return FALSE;
type = debug_make_array_type (dhandle, etype,
@@ -1829,6 +1865,8 @@ parse_ieee_ty (struct ieee_info *info, c
/* FIXME: I don't know what the name means. */
if (! ieee_read_id (info, pp, &name, &namlen))
+ /* There is a potential resource leak here, but it is not important. */
+ /* coverity[leaked_storage: FALSE] */
return FALSE;
type = debug_make_complex_type (dhandle, tc == 'c' ? 4 : 8);
@@ -1838,6 +1876,8 @@ parse_ieee_ty (struct ieee_info *info, c
case 'f':
/* Pascal file name. FIXME. */
ieee_error (info, ty_code_start, _("Pascal file name not supported"));
+ /* There is a potential resource leak here, but it is not important. */
+ /* coverity[leaked_storage: FALSE] */
return FALSE;
case 'g':
@@ -1849,12 +1889,16 @@ parse_ieee_ty (struct ieee_info *info, c
if (! ieee_read_number (info, pp, &signedp)
|| ! ieee_read_number (info, pp, &bitsize))
+ /* There is a potential resource leak here, but it is not important. */
+ /* coverity[leaked_storage: FALSE] */
return FALSE;
/* I think the documentation says that there is a type index,
but some actual files do not have one. */
hold = *pp;
if (! ieee_read_optional_number (info, pp, &dummy, &present))
+ /* There is a potential resource leak here, but it is not important. */
+ /* coverity[leaked_storage: FALSE] */
return FALSE;
if (! present)
{
@@ -1866,6 +1910,8 @@ parse_ieee_ty (struct ieee_info *info, c
{
*pp = hold;
if (! ieee_read_type_index (info, pp, &type))
+ /* There is a potential resource leak here, but it is not important. */
+ /* coverity[leaked_storage: FALSE] */
return FALSE;
}
type_bitsize = bitsize;
@@ -1880,12 +1926,16 @@ parse_ieee_ty (struct ieee_info *info, c
if (! ieee_read_number (info, pp, &kind)
|| ! ieee_read_type_index (info, pp, &t))
+ /* There is a potential resource leak here, but it is not important. */
+ /* coverity[leaked_storage: FALSE] */
return FALSE;
switch (kind)
{
default:
ieee_error (info, ty_start, _("unsupported qualifier"));
+ /* There is a potential resource leak here, but it is not important. */
+ /* coverity[leaked_storage: FALSE] */
return FALSE;
case 1:
@@ -1907,6 +1957,8 @@ parse_ieee_ty (struct ieee_info *info, c
if (! ieee_read_number (info, pp, &size)
|| ! ieee_read_type_index (info, pp, &etype))
+ /* There is a potential resource leak here, but it is not important. */
+ /* coverity[leaked_storage: FALSE] */
return FALSE;
/* FIXME: We ignore the size. */
@@ -1934,6 +1986,8 @@ parse_ieee_ty (struct ieee_info *info, c
|| ! ieee_read_number (info, pp, &push_mask)
|| ! ieee_read_type_index (info, pp, &rtype)
|| ! ieee_read_number (info, pp, &nargs))
+ /* There is a potential resource leak here, but it is not important. */
+ /* coverity[leaked_storage: FALSE] */
return FALSE;
if (nargs == (bfd_vma) -1)
{
@@ -1948,6 +2002,8 @@ parse_ieee_ty (struct ieee_info *info, c
xmalloc ((nargs + 1) * sizeof *arg_types));
for (i = 0; i < nargs; i++)
if (! ieee_read_type_index (info, pp, arg_types + i))
+ /* There is a potential resource leak here, but it is not important. */
+ /* coverity[leaked_storage: FALSE] */
return FALSE;
/* If the last type is pointer to void, this is really a
@@ -1995,6 +2051,8 @@ parse_ieee_ty (struct ieee_info *info, c
}
if (! ieee_read_number (info, pp, &level)
|| ! ieee_read_optional_number (info, pp, &father, &present))
+ /* There is a potential resource leak here, but it is not important. */
+ /* coverity[leaked_storage: FALSE] */
return FALSE;
/* We can't distinguish between a global function and a static
diff -rup binutils.orig/binutils/objcopy.c binutils-2.30/binutils/objcopy.c
--- binutils.orig/binutils/objcopy.c 2019-10-07 17:01:58.036684476 +0100
+++ binutils-2.30/binutils/objcopy.c 2019-10-07 17:26:39.304812562 +0100
@@ -1142,6 +1142,8 @@ add_specific_symbols (const char *filena
line = eol;
line_count ++;
}
+ /* There is a potential resource leak here, but it is not important. */
+ /* coverity[leaked_storage: FALSE] */
}
/* See whether a symbol should be stripped or kept
@@ -1817,6 +1819,8 @@ add_redefine_syms_file (const char *file
fatal (_("%s:%d: premature end of file"), filename, lineno);
free (buf);
+ /* There is a potential resource leak here, but it is not important. */
+ /* coverity[leaked_storage: FALSE] */
}
/* Copy unknown object file IBFD onto OBFD.
@@ -2855,6 +2859,8 @@ copy_object (bfd *ibfd, bfd *obfd, const
strerror (errno));
free (contents);
return FALSE;
+ /* There is a potential resource leak here, but it is not important. */
+ /* coverity[leaked_storage: FALSE] */
}
}
else
@@ -3063,6 +3069,8 @@ copy_object (bfd *ibfd, bfd *obfd, const
{
status = 1;
return FALSE;
+ /* There is a potential resource leak here, but it is not important. */
+ /* coverity[leaked_storage: FALSE] */
}
}
@@ -3097,6 +3105,8 @@ copy_object (bfd *ibfd, bfd *obfd, const
0, padd->size))
{
bfd_nonfatal_message (NULL, obfd, padd->section, NULL);
+ /* There is a potential resource leak here, but it is not important. */
+ /* coverity[leaked_storage: FALSE] */
return FALSE;
}
}
@@ -3115,6 +3125,8 @@ copy_object (bfd *ibfd, bfd *obfd, const
0, pupdate->size))
{
bfd_nonfatal_message (NULL, obfd, osec, NULL);
+ /* There is a potential resource leak here, but it is not important. */
+ /* coverity[leaked_storage: FALSE] */
return FALSE;
}
}
@@ -3128,6 +3140,8 @@ copy_object (bfd *ibfd, bfd *obfd, const
if (! bfd_set_section_contents (obfd, osec, merged_notes, 0, merged_size))
{
bfd_nonfatal_message (NULL, obfd, osec, _("error: failed to copy merged notes into output"));
+ /* There is a potential resource leak here, but it is not important. */
+ /* coverity[leaked_storage: FALSE] */
return FALSE;
}
}
@@ -3146,6 +3160,8 @@ copy_object (bfd *ibfd, bfd *obfd, const
bfd_nonfatal_message (NULL, obfd, NULL,
_("cannot fill debug link section `%s'"),
gnu_debuglink_filename);
+ /* There is a potential resource leak here, but it is not important. */
+ /* coverity[leaked_storage: FALSE] */
return FALSE;
}
}
@@ -3184,6 +3200,8 @@ copy_object (bfd *ibfd, bfd *obfd, const
off, now))
{
bfd_nonfatal_message (NULL, obfd, osections[i], NULL);
+ /* There is a potential resource leak here, but it is not important. */
+ /* coverity[leaked_storage: FALSE] */
return FALSE;
}
@@ -3202,6 +3220,8 @@ copy_object (bfd *ibfd, bfd *obfd, const
{
bfd_nonfatal_message (NULL, obfd, NULL,
_("error copying private BFD data"));
+ /* There is a potential resource leak here, but it is not important. */
+ /* coverity[leaked_storage: FALSE] */
return FALSE;
}
@@ -3224,6 +3244,8 @@ copy_object (bfd *ibfd, bfd *obfd, const
}
}
+ /* There is a potential resource leak here, but it is not important. */
+ /* coverity[leaked_storage: FALSE] */
return TRUE;
}
@@ -3302,6 +3324,7 @@ copy_archive (bfd *ibfd, bfd *obfd, cons
/* If the file already exists, make another temp dir. */
if (stat (output_name, &buf) >= 0)
{
+ free (output_name);
output_name = make_tempdir (output_name);
if (output_name == NULL)
{
@@ -3435,6 +3458,7 @@ copy_archive (bfd *ibfd, bfd *obfd, cons
}
rmdir (dir);
+ free (dir);
}
static void
@@ -4310,6 +4334,8 @@ write_debugging_info (bfd *obfd, void *d
{
bfd_nonfatal_message (NULL, obfd, NULL,
_("can't create debugging section"));
+ /* There is a potential resource leak here, but it is not important. */
+ /* coverity[leaked_storage: FALSE] */
return FALSE;
}
@@ -4323,6 +4349,8 @@ write_debugging_info (bfd *obfd, void *d
{
bfd_nonfatal_message (NULL, obfd, NULL,
_("can't set debugging section contents"));
+ /* There is a potential resource leak here, but it is not important. */
+ /* coverity[leaked_storage: FALSE] */
return FALSE;
}
@@ -5569,6 +5597,8 @@ copy_main (int argc, char *argv[])
}
}
+ /* There is a potential resource leak here, but it is not important. */
+ /* coverity[leaked_storage: FALSE] */
return 0;
}
diff -rup binutils-2.30/binutils/ieee.c binutils.new/binutils/ieee.c
--- binutils-2.30/binutils/ieee.c 2019-10-08 10:20:47.186432611 +0100
+++ binutils.new/binutils/ieee.c 2019-10-08 10:20:33.515525367 +0100
@@ -2661,13 +2661,18 @@ ieee_read_cxx_class (struct ieee_info *i
spec_start = *pp;
if (! ieee_require_asn (info, pp, &id))
+ /* There is a potential resource leak here, but it is not important. */
+ /* coverity[leaked_storage: FALSE] */
return FALSE;
+
--count;
switch (id)
{
default:
ieee_error (info, spec_start, _("unrecognized C++ object spec"));
+ /* There is a potential resource leak here, but it is not important. */
+ /* coverity[leaked_storage: FALSE] */
return FALSE;
case 'b':
@@ -2704,6 +2709,8 @@ ieee_read_cxx_class (struct ieee_info *i
if ((fieldlen == 0) == (cinline == 0))
{
ieee_error (info, start, _("unsupported C++ object type"));
+ /* There is a potential resource leak here, but it is not important. */
+ /* coverity[leaked_storage: FALSE] */
return FALSE;
}
@@ -2887,12 +2894,16 @@ ieee_read_cxx_class (struct ieee_info *i
}
}
if (ftype == DEBUG_TYPE_NULL)
+ /* There is a potential resource leak here, but it is not important. */
+ /* coverity[leaked_storage: FALSE] */
return FALSE;
switch (flags & CXXFLAGS_VISIBILITY)
{
default:
ieee_error (info, start, _("unknown C++ visibility"));
+ /* There is a potential resource leak here, but it is not important. */
+ /* coverity[leaked_storage: FALSE] */
return FALSE;
case CXXFLAGS_VISIBILITY_PUBLIC:
@@ -2927,6 +2938,8 @@ ieee_read_cxx_class (struct ieee_info *i
if (bitpos == (bfd_vma) -1 || bitsize == (bfd_vma) -1)
{
ieee_error (info, start, _("bad C++ field bit pos or size"));
+ /* There is a potential resource leak here, but it is not important. */
+ /* coverity[leaked_storage: FALSE] */
return FALSE;
}
field = debug_make_field (dhandle, fieldcopy, ftype, bitpos,
@@ -3043,6 +3056,8 @@ ieee_read_cxx_class (struct ieee_info *i
{
default:
ieee_error (info, start, _("unknown C++ visibility"));
+ /* There is a potential resource leak here, but it is not important. */
+ /* coverity[leaked_storage: FALSE] */
return FALSE;
case CXXFLAGS_VISIBILITY_PUBLIC:
@@ -3229,6 +3244,8 @@ ieee_read_cxx_class (struct ieee_info *i
dmethods[i] = debug_make_method (dhandle, namcopy,
methods[i].variants);
if (dmethods[i] == DEBUG_METHOD_NULL)
+ /* There is a potential resource leak here, but it is not important. */
+ /* coverity[leaked_storage: FALSE] */
return FALSE;
}
dmethods[i] = DEBUG_METHOD_NULL;
diff -rup binutils-2.30/binutils/objcopy.c binutils.new/binutils/objcopy.c
--- binutils-2.30/binutils/objcopy.c 2019-10-08 10:20:47.186432611 +0100
+++ binutils.new/binutils/objcopy.c 2019-10-08 10:20:33.513525381 +0100
@@ -2858,9 +2858,9 @@ copy_object (bfd *ibfd, bfd *obfd, const
pdump->filename,
strerror (errno));
free (contents);
- return FALSE;
/* There is a potential resource leak here, but it is not important. */
/* coverity[leaked_storage: FALSE] */
+ return FALSE;
}
}
else
@@ -3068,9 +3068,9 @@ copy_object (bfd *ibfd, bfd *obfd, const
if (bfd_get_error () != bfd_error_no_error)
{
status = 1;
- return FALSE;
/* There is a potential resource leak here, but it is not important. */
/* coverity[leaked_storage: FALSE] */
+ return FALSE;
}
}
@@ -3083,6 +3083,8 @@ copy_object (bfd *ibfd, bfd *obfd, const
if (! write_debugging_info (obfd, dhandle, &symcount, &osympp))
{
status = 1;
+ /* There is a potential resource leak here, but it is not important. */
+ /* coverity[leaked_storage: FALSE] */
return FALSE;
}
}
@@ -3210,6 +3212,8 @@ copy_object (bfd *ibfd, bfd *obfd, const
}
}
}
+ /* There is a potential resource leak here, but it is not important. */
+ /* coverity[leaked_storage: FALSE] */
}
/* Allow the BFD backend to copy any private data it understands
@@ -3324,8 +3328,10 @@ copy_archive (bfd *ibfd, bfd *obfd, cons
/* If the file already exists, make another temp dir. */
if (stat (output_name, &buf) >= 0)
{
+ char * on;
+ on = make_tempdir (output_name);
free (output_name);
- output_name = make_tempdir (output_name);
+ output_name = on;
if (output_name == NULL)
{
non_fatal (_("cannot create tempdir for archive copying (error: %s)"),
diff -rup binutils-2.30/binutils/rdcoff.c binutils.new/binutils/rdcoff.c
--- binutils-2.30/binutils/rdcoff.c 2018-01-13 13:31:15.000000000 +0000
+++ binutils.new/binutils/rdcoff.c 2019-10-08 10:20:33.512525387 +0100
@@ -409,6 +409,8 @@ parse_coff_struct_type (bfd *abfd, struc
{
non_fatal (_("bfd_coff_get_syment failed: %s"),
bfd_errmsg (bfd_get_error ()));
+ /* There is a potential resource leak here, but it is not important. */
+ /* coverity[leaked_storage: FALSE] */
return DEBUG_TYPE_NULL;
}
@@ -425,6 +427,8 @@ parse_coff_struct_type (bfd *abfd, struc
{
non_fatal (_("bfd_coff_get_auxent failed: %s"),
bfd_errmsg (bfd_get_error ()));
+ /* There is a potential resource leak here, but it is not important. */
+ /* coverity[leaked_storage: FALSE] */
return DEBUG_TYPE_NULL;
}
psubaux = &auxent;
@@ -514,6 +518,8 @@ parse_coff_enum_type (bfd *abfd, struct
{
non_fatal (_("bfd_coff_get_syment failed: %s"),
bfd_errmsg (bfd_get_error ()));
+ /* There is a potential resource leak here, but it is not important. */
+ /* coverity[leaked_storage: FALSE] */
return DEBUG_TYPE_NULL;
}
diff -rup binutils-2.30/binutils/readelf.c binutils.new/binutils/readelf.c
--- binutils-2.30/binutils/readelf.c 2019-10-08 10:20:47.161432781 +0100
+++ binutils.new/binutils/readelf.c 2019-10-08 10:20:33.507525422 +0100
@@ -5304,6 +5304,8 @@ get_32bit_section_headers (Filedata * fi
{
if (!probe)
error (_("Out of memory reading %u section headers\n"), num);
+ /* There is a potential resource leak here, but it is not important. */
+ /* coverity[leaked_storage: FALSE] */
return FALSE;
}
@@ -5370,6 +5372,8 @@ get_64bit_section_headers (Filedata * fi
{
if (! probe)
error (_("Out of memory reading %u section headers\n"), num);
+ /* There is a potential resource leak here, but it is not important. */
+ /* coverity[leaked_storage: FALSE] */
return FALSE;
}
@@ -5456,6 +5460,7 @@ get_32bit_elf_symbols (Filedata *
for (entry = symtab_shndx_list; entry != NULL; entry = entry->next)
if (entry->hdr->sh_link == (unsigned long) (section - filedata->section_headers))
{
+ free (shndx);
shndx = (Elf_External_Sym_Shndx *) get_data (NULL, filedata,
entry->hdr->sh_offset,
1, entry->hdr->sh_size,
@@ -5569,6 +5574,7 @@ get_64bit_elf_symbols (Filedata *
for (entry = symtab_shndx_list; entry != NULL; entry = entry->next)
if (entry->hdr->sh_link == (unsigned long) (section - filedata->section_headers))
{
+ free (shndx);
shndx = (Elf_External_Sym_Shndx *) get_data (NULL, filedata,
entry->hdr->sh_offset,
1, entry->hdr->sh_size,
@@ -9647,6 +9653,7 @@ process_dynamic_section (Filedata * file
section.sh_entsize = sizeof (Elf64_External_Sym);
section.sh_name = filedata->string_table_length;
+ free (dynamic_symbols);
dynamic_symbols = GET_ELF_SYMBOLS (filedata, &section, & num_dynamic_syms);
if (num_dynamic_syms < 1)
{
@@ -11500,6 +11507,8 @@ process_symbol_table (Filedata * filedat
if (gnubuckets[i] != 0)
{
if (gnubuckets[i] < gnusymidx)
+ /* There is a potential resource leak here, but it is not important. */
+ /* coverity[leaked_storage: FALSE] */
return FALSE;
if (maxchain == 0xffffffff || gnubuckets[i] > maxchain)
@@ -12950,6 +12959,8 @@ apply_relocations (Filedata *
symsec = filedata->section_headers + relsec->sh_link;
if (symsec->sh_type != SHT_SYMTAB
&& symsec->sh_type != SHT_DYNSYM)
+ /* There is a potential resource leak here, but it is not important. */
+ /* coverity[leaked_storage: FALSE] */
return FALSE;
symtab = GET_ELF_SYMBOLS (filedata, symsec, & num_syms);
@@ -16096,6 +16107,8 @@ process_mips_specific (Filedata * fileda
}
else
res = FALSE;
+ /* There is a potential resource leak here, but it is not important. */
+ /* coverity[leaked_storage: FALSE] */
}
if (conflicts_offset != 0 && conflictsno != 0)
@@ -16133,6 +16146,8 @@ process_mips_specific (Filedata * fileda
get_data (NULL, filedata, conflicts_offset, conflictsno,
sizeof (* econf32), _("conflict"));
if (!econf32)
+ /* There is a potential resource leak here, but it is not important. */
+ /* coverity[leaked_storage: FALSE] */
return FALSE;
for (cnt = 0; cnt < conflictsno; ++cnt)
@@ -16148,6 +16163,8 @@ process_mips_specific (Filedata * fileda
get_data (NULL, filedata, conflicts_offset, conflictsno,
sizeof (* econf64), _("conflict"));
if (!econf64)
+ /* There is a potential resource leak here, but it is not important. */
+ /* coverity[leaked_storage: FALSE] */
return FALSE;
for (cnt = 0; cnt < conflictsno; ++cnt)
@@ -16350,6 +16367,8 @@ process_mips_specific (Filedata * fileda
data = (unsigned char *) get_data (NULL, filedata, offset, end - mips_pltgot,
1, _("Procedure Linkage Table data"));
if (data == NULL)
+ /* There is a potential resource leak here, but it is not important. */
+ /* coverity[leaked_storage: FALSE] */
return FALSE;
printf ("\nPLT GOT:\n\n");
@@ -16434,6 +16453,8 @@ process_nds32_specific (Filedata * filed
printf ("(VEC_SIZE):\treserved\n");
break;
}
+ /* There is a potential resource leak here, but it is not important. */
+ /* coverity[leaked_storage: FALSE] */
}
return TRUE;
@@ -17488,9 +17509,9 @@ get_symbol_for_build_attribute (Filedata
const char ** pname)
{
static Filedata * saved_filedata = NULL;
- static char * strtab;
+ static char * strtab = NULL;
static unsigned long strtablen;
- static Elf_Internal_Sym * symtab;
+ static Elf_Internal_Sym * symtab = NULL;
static unsigned long nsyms;
Elf_Internal_Sym * saved_sym = NULL;
Elf_Internal_Sym * sym;
@@ -17507,12 +17528,14 @@ get_symbol_for_build_attribute (Filedata
{
if (symsec->sh_type == SHT_SYMTAB)
{
+ free (symtab);
symtab = GET_ELF_SYMBOLS (filedata, symsec, & nsyms);
if (symsec->sh_link < filedata->file_header.e_shnum)
{
Elf_Internal_Shdr * strtab_sec = filedata->section_headers + symsec->sh_link;
+ free (strtab);
strtab = (char *) get_data (NULL, filedata, strtab_sec->sh_offset,
1, strtab_sec->sh_size,
_("string table"));
@@ -18095,6 +18118,8 @@ process_notes_at (Filedata * f
{
warn (_("Corrupt note: alignment %ld, expecting 4 or 8\n"),
(long) align);
+ /* There is a potential resource leak here, but it is not important. */
+ /* coverity[leaked_storage: FALSE] */
return FALSE;
}
diff -rup binutils.orig/binutils/ieee.c binutils-2.30/binutils/ieee.c
--- binutils.orig/binutils/ieee.c 2019-10-08 11:33:02.620958088 +0100
+++ binutils-2.30/binutils/ieee.c 2019-10-08 11:34:44.609294479 +0100
@@ -2838,6 +2838,8 @@ ieee_read_cxx_class (struct ieee_info *i
if (structfields == NULL)
{
ieee_error (info, start, _("C++ object has no fields"));
+ /* There is a potential resource leak here, but it is not important. */
+ /* coverity[leaked_storage: FALSE] */
return FALSE;
}
diff -rup binutils.orig/binutils/rddbg.c binutils-2.30/binutils/rddbg.c
--- binutils.orig/binutils/rddbg.c 2019-10-08 11:33:02.619958094 +0100
+++ binutils-2.30/binutils/rddbg.c 2019-10-08 11:34:35.169355901 +0100
@@ -86,6 +86,8 @@ read_debugging_info (bfd *abfd, asymbol
if (! no_messages)
non_fatal (_("%s: no recognized debugging information"),
bfd_get_filename (abfd));
+ /* There is a potential resource leak here, but it is not important. */
+ /* coverity[leaked_storage: FALSE] */
return NULL;
}
@@ -300,6 +302,8 @@ read_symbol_stabs_debugging_info (bfd *a
s = i.name;
if (s == NULL || strlen (s) < 1)
+ /* There is a potential resource leak here, but it is not important. */
+ /* coverity[leaked_storage: FALSE] */
return FALSE;
f = NULL;
diff -rup binutils.orig/binutils/stabs.c binutils-2.30/binutils/stabs.c
--- binutils.orig/binutils/stabs.c 2019-10-08 11:33:02.607958173 +0100
+++ binutils-2.30/binutils/stabs.c 2019-10-08 11:34:25.489418884 +0100
@@ -758,6 +758,8 @@ parse_stab_string (void *dhandle, struct
if (*p != '=')
{
bad_stab (string);
+ /* There is a potential resource leak here, but it is not important. */
+ /* coverity[leaked_storage: FALSE] */
return FALSE;
}
++p;
@@ -791,6 +793,8 @@ parse_stab_string (void *dhandle, struct
if (*p != ',')
{
bad_stab (string);
+ /* There is a potential resource leak here, but it is not important. */
+ /* coverity[leaked_storage: FALSE] */
return FALSE;
}
if (! debug_record_typed_const (dhandle, name, dtype, atoi (p)))
@@ -798,6 +802,8 @@ parse_stab_string (void *dhandle, struct
break;
default:
bad_stab (string);
+ /* There is a potential resource leak here, but it is not important. */
+ /* coverity[leaked_storage: FALSE] */
return FALSE;
}
@@ -810,6 +816,8 @@ parse_stab_string (void *dhandle, struct
if (dtype == DEBUG_TYPE_NULL)
return FALSE;
if (! debug_record_label (dhandle, name, dtype, value))
+ /* There is a potential resource leak here, but it is not important. */
+ /* coverity[leaked_storage: FALSE] */
return FALSE;
break;
@@ -1114,6 +1122,8 @@ parse_stab_string (void *dhandle, struct
while (*p != ';')
++p;
++p;
+ /* There is a potential resource leak here, but it is not important. */
+ /* coverity[leaked_storage: FALSE] */
return TRUE;
}
/* TODO SUNPro C++ support:
@@ -1127,12 +1137,16 @@ parse_stab_string (void *dhandle, struct
default:
bad_stab (string);
+ /* There is a potential resource leak here, but it is not important. */
+ /* coverity[leaked_storage: FALSE] */
return FALSE;
}
/* FIXME: gdb converts structure values to structure pointers in a
couple of cases, depending upon the target. */
+ /* There is a potential resource leak here, but it is not important. */
+ /* coverity[leaked_storage: FALSE] */
return TRUE;
}
@@ -1499,6 +1513,8 @@ parse_stab_type (void *dhandle, struct s
if (**pp != ',')
{
bad_stab (orig);
+ /* There is a potential resource leak here, but it is not important. */
+ /* coverity[leaked_storage: FALSE] */
return DEBUG_TYPE_NULL;
}
++*pp;
@@ -1513,6 +1529,8 @@ parse_stab_type (void *dhandle, struct s
args[n] = parse_stab_type (dhandle, info, (const char *) NULL,
pp, (debug_type **) NULL);
if (args[n] == DEBUG_TYPE_NULL)
+ /* There is a potential resource leak here, but it is not important. */
+ /* coverity[leaked_storage: FALSE] */
return DEBUG_TYPE_NULL;
++n;
}
@@ -2290,6 +2308,8 @@ parse_stab_struct_fields (void *dhandle,
if (! parse_stab_one_struct_field (dhandle, info, pp, p, fields + c,
staticsp))
+ /* There is a potential resource leak here, but it is not important. */
+ /* coverity[leaked_storage: FALSE] */
return FALSE;
++c;
@@ -2365,6 +2385,8 @@ parse_stab_cpp_abbrev (void *dhandle, st
if (**pp != ':')
{
bad_stab (orig);
+ /* There is a potential resource leak here, but it is not important. */
+ /* coverity[leaked_storage: FALSE] */
return FALSE;
}
++*pp;
@@ -2374,6 +2396,8 @@ parse_stab_cpp_abbrev (void *dhandle, st
if (**pp != ',')
{
bad_stab (orig);
+ /* There is a potential resource leak here, but it is not important. */
+ /* coverity[leaked_storage: FALSE] */
return FALSE;
}
++*pp;
@@ -2382,6 +2406,8 @@ parse_stab_cpp_abbrev (void *dhandle, st
if (**pp != ';')
{
bad_stab (orig);
+ /* There is a potential resource leak here, but it is not important. */
+ /* coverity[leaked_storage: FALSE] */
return FALSE;
}
++*pp;
@@ -2787,6 +2813,8 @@ parse_stab_members (void *dhandle, struc
if (return_type == DEBUG_TYPE_NULL)
{
bad_stab (orig);
+ /* There is a potential resource leak here, but it is not important. */
+ /* coverity[leaked_storage: FALSE] */
goto fail;
}
type = parse_stab_argtypes (dhandle, info, class_type, name,
@@ -3104,6 +3132,8 @@ parse_stab_array_type (void *dhandle, st
if (**pp != ';')
{
bad_stab (orig);
+ /* There is a potential resource leak here, but it is not important. */
+ /* coverity[leaked_storage: FALSE] */
return DEBUG_TYPE_NULL;
}
++*pp;
@@ -3120,6 +3150,8 @@ parse_stab_array_type (void *dhandle, st
if (**pp != ';')
{
bad_stab (orig);
+ /* There is a potential resource leak here, but it is not important. */
+ /* coverity[leaked_storage: FALSE] */
return DEBUG_TYPE_NULL;
}
++*pp;
@@ -3134,6 +3166,8 @@ parse_stab_array_type (void *dhandle, st
if (**pp != ';')
{
bad_stab (orig);
+ /* There is a potential resource leak here, but it is not important. */
+ /* coverity[leaked_storage: FALSE] */
return DEBUG_TYPE_NULL;
}
++*pp;
@@ -3141,6 +3175,8 @@ parse_stab_array_type (void *dhandle, st
element_type = parse_stab_type (dhandle, info, (const char *) NULL, pp,
(debug_type **) NULL);
if (element_type == DEBUG_TYPE_NULL)
+ /* There is a potential resource leak here, but it is not important. */
+ /* coverity[leaked_storage: FALSE] */
return DEBUG_TYPE_NULL;
if (adjustable)
@@ -5366,6 +5402,8 @@ stab_demangle_v3_arg (void *dhandle, str
dc->u.s_binary.right,
&varargs);
if (pargs == NULL)
+ /* There is a potential resource leak here, but it is not important. */
+ /* coverity[leaked_storage: FALSE] */
return NULL;
return debug_make_function_type (dhandle, dt, pargs, varargs);
diff -rup binutils.orig/gas/as.c binutils-2.30/gas/as.c
--- binutils.orig/gas/as.c 2019-10-08 11:33:02.834956696 +0100
+++ binutils-2.30/gas/as.c 2019-10-08 11:34:17.073473644 +0100
@@ -934,6 +934,8 @@ This program has absolutely no warranty.
case OPTION_AL:
listing |= LISTING_LISTING;
if (optarg)
+ /* There is a potential resource leak here, but it is not important. */
+ /* coverity[leaked_storage: FALSE] */
listing_filename = xstrdup (optarg);
break;
@@ -988,6 +990,8 @@ This program has absolutely no warranty.
listing |= LISTING_SYMBOLS;
break;
case '=':
+ /* There is a potential resource leak here, but it is not important. */
+ /* coverity[leaked_storage: FALSE] */
listing_filename = xstrdup (optarg + 1);
optarg += strlen (listing_filename);
break;
@@ -1021,6 +1025,8 @@ This program has absolutely no warranty.
}
case 'o':
+ /* There is a potential resource leak here, but it is not important. */
+ /* coverity[leaked_storage: FALSE] */
out_file_name = xstrdup (optarg);
break;
diff -rup binutils.orig/gas/config/obj-elf.c binutils-2.30/gas/config/obj-elf.c
--- binutils.orig/gas/config/obj-elf.c 2019-10-08 11:33:02.848956604 +0100
+++ binutils-2.30/gas/config/obj-elf.c 2019-10-08 11:34:09.473523094 +0100
@@ -1028,6 +1028,8 @@ obj_elf_attach_to_group (int dummy ATTRI
elf_group_name (now_seg) = xstrdup (gname);
elf_section_flags (now_seg) |= SHF_GROUP;
+ /* There is a potential resource leak here, but it is not important. */
+ /* coverity[leaked_storage: FALSE] */
}
void
@@ -1103,6 +1105,8 @@ obj_elf_section (int push)
if (beg == NULL)
{
ignore_rest_of_line ();
+ /* There is a potential resource leak here, but it is not important. */
+ /* coverity[leaked_storage: FALSE] */
return;
}
attr |= obj_elf_parse_section_letters (beg, strlen (beg), &is_clone);
@@ -1233,6 +1237,8 @@ obj_elf_section (int push)
{
as_bad (_("character following name is not '#'"));
ignore_rest_of_line ();
+ /* There is a potential resource leak here, but it is not important. */
+ /* coverity[leaked_storage: FALSE] */
return;
}
++input_line_pointer;
diff -rup binutils.orig/gas/dwarf2dbg.c binutils-2.30/gas/dwarf2dbg.c
--- binutils.orig/gas/dwarf2dbg.c 2019-10-08 11:33:02.839956663 +0100
+++ binutils-2.30/gas/dwarf2dbg.c 2019-10-08 11:34:00.913578791 +0100
@@ -1701,6 +1701,8 @@ out_file_list (void)
/* Terminate filename list. */
out_byte (0);
+ /* There is a potential resource leak here, but it is not important. */
+ /* coverity[leaked_storage: FALSE] */
}
/* Switch to SEC and output a header length field. Return the size of
@@ -2115,6 +2117,8 @@ out_debug_str (segT str_seg, symbolS **n
len = strlen (producer) + 1;
p = frag_more (len);
memcpy (p, producer, len);
+ /* There is a potential resource leak here, but it is not important. */
+ /* coverity[leaked_storage: FALSE] */
}
void
diff -rup binutils.orig/gas/read.c binutils-2.30/gas/read.c
--- binutils.orig/gas/read.c 2019-10-08 11:33:02.852956578 +0100
+++ binutils-2.30/gas/read.c 2019-10-08 11:33:51.537639797 +0100
@@ -1714,6 +1714,8 @@ read_symbol_name (void)
{
as_bad (_("expected symbol name"));
ignore_rest_of_line ();
+ /* There is a potential resource leak here, but it is not important. */
+ /* coverity[leaked_storage: FALSE] */
return NULL;
}
diff -rup binutils.orig/gas/write.c binutils-2.30/gas/write.c
--- binutils.orig/gas/write.c 2019-10-08 11:33:02.833956702 +0100
+++ binutils-2.30/gas/write.c 2019-10-08 11:33:36.033740679 +0100
@@ -1366,6 +1366,8 @@ write_relocs (bfd *abfd, asection *sec,
}
}
#endif
+ /* There is a potential resource leak here, but it is not important. */
+ /* coverity[leaked_storage: FALSE] */
}
static int
@@ -1868,6 +1870,8 @@ create_note_reloc (segT sec,
if (reloc->u.b.r.howto == NULL)
{
as_bad (_("unable to create reloc for build note"));
+ /* There is a potential resource leak here, but it is not important. */
+ /* coverity[leaked_storage: FALSE] */
return;
}
diff -rup binutils.orig/gas/as.c binutils-2.30/gas/as.c
--- binutils.orig/gas/as.c 2019-10-08 13:45:17.382428420 +0100
+++ binutils-2.30/gas/as.c 2019-10-08 13:46:01.613135558 +0100
@@ -935,7 +935,7 @@ This program has absolutely no warranty.
listing |= LISTING_LISTING;
if (optarg)
/* There is a potential resource leak here, but it is not important. */
- /* coverity[leaked_storage: FALSE] */
+ /* coverity[overwrite_var: FALSE] */
listing_filename = xstrdup (optarg);
break;
@@ -991,7 +991,7 @@ This program has absolutely no warranty.
break;
case '=':
/* There is a potential resource leak here, but it is not important. */
- /* coverity[leaked_storage: FALSE] */
+ /* coverity[overwrite_var: FALSE] */
listing_filename = xstrdup (optarg + 1);
optarg += strlen (listing_filename);
break;
@@ -1026,7 +1026,7 @@ This program has absolutely no warranty.
case 'o':
/* There is a potential resource leak here, but it is not important. */
- /* coverity[leaked_storage: FALSE] */
+ /* coverity[overwrite_var: FALSE] */
out_file_name = xstrdup (optarg);
break;
diff -rup binutils.orig/gas/config/obj-elf.c binutils-2.30/gas/config/obj-elf.c
--- binutils.orig/gas/config/obj-elf.c 2019-10-08 13:45:17.371428492 +0100
+++ binutils-2.30/gas/config/obj-elf.c 2019-10-08 13:46:49.916815725 +0100
@@ -1023,6 +1023,8 @@ obj_elf_attach_to_group (int dummy ATTRI
if (elf_group_name (now_seg))
{
as_warn ("already has a group");
+ /* There is a potential resource leak here, but it is not important. */
+ /* coverity[leaked_storage: FALSE] */
return;
}
diff -rup binutils.orig/gas/dwarf2dbg.c binutils-2.30/gas/dwarf2dbg.c
--- binutils.orig/gas/dwarf2dbg.c 2019-10-08 13:45:17.384428407 +0100
+++ binutils-2.30/gas/dwarf2dbg.c 2019-10-08 13:47:29.198555634 +0100
@@ -1664,6 +1664,8 @@ out_file_list (void)
/* Emit directory list. */
for (i = 1; i < dirs_in_use; ++i)
{
+ /* There is a potential resource leak here, but it is not important. */
+ /* coverity[overwrite_var: FALSE] */
dir = remap_debug_filename (dirs[i]);
size = strlen (dir) + 1;
cp = frag_more (size);
diff -rup binutils.orig/gold/cref.cc binutils-2.30/gold/cref.cc
--- binutils.orig/gold/cref.cc 2019-10-08 13:45:17.653426626 +0100
+++ binutils-2.30/gold/cref.cc 2019-10-08 13:47:46.669439951 +0100
@@ -391,6 +391,8 @@ Cref::print_symbol_counts(const Symbol_t
}
if (f != NULL)
this->inputs_->print_symbol_counts(symtab, f);
+ /* There is a potential resource leak here, but it is not important. */
+ /* coverity[leaked_storage: FALSE] */
}
}
diff -rup binutils.orig/gold/dwarf_reader.cc binutils-2.30/gold/dwarf_reader.cc
--- binutils.orig/gold/dwarf_reader.cc 2019-10-08 13:45:17.654426619 +0100
+++ binutils-2.30/gold/dwarf_reader.cc 2019-10-08 13:48:03.292329889 +0100
@@ -265,12 +265,16 @@ Dwarf_abbrev_table::do_get_abbrev(unsign
{
// Read the attribute.
if (this->buffer_pos_ >= this->buffer_end_)
+ /* There is a potential resource leak here, but it is not important. */
+ /* coverity[leaked_storage: FALSE] */
return NULL;
uint64_t attr = read_unsigned_LEB_128(this->buffer_pos_, &len);
this->buffer_pos_ += len;
// Read the form.
if (this->buffer_pos_ >= this->buffer_end_)
+ /* There is a potential resource leak here, but it is not important. */
+ /* coverity[leaked_storage: FALSE] */
return NULL;
uint64_t form = read_unsigned_LEB_128(this->buffer_pos_, &len);
this->buffer_pos_ += len;
diff -rup binutils.orig/gold/dwp.cc binutils-2.30/gold/dwp.cc
--- binutils.orig/gold/dwp.cc 2019-10-08 13:45:17.656426606 +0100
+++ binutils-2.30/gold/dwp.cc 2019-10-08 13:48:12.317270132 +0100
@@ -803,6 +803,8 @@ Sized_relobj_dwo<size, big_endian>::setu
pshdrs, this->shnum(), names, section_names_size, this, true);
if (compressed_sections != NULL && !compressed_sections->empty())
this->set_compressed_sections(compressed_sections);
+ /* There is a potential resource leak here, but it is not important. */
+ /* coverity[leaked_storage: FALSE] */
}
// Return a view of the contents of a section.
@@ -1163,6 +1165,8 @@ Dwo_file::sized_read_unit_index(unsigned
elfcpp::Swap_unaligned<32, big_endian>::readval(contents
+ 2 * sizeof(uint32_t));
if (ncols == 0 || nused == 0)
+ /* There is a potential resource leak here, but it is not important. */
+ /* coverity[leaked_storage: FALSE] */
return;
gold_assert(info_shndx > 0);
@@ -1305,6 +1309,8 @@ Dwo_file::sized_verify_dwo_list(unsigned
elfcpp::Swap_unaligned<32, big_endian>::readval(contents
+ 2 * sizeof(uint32_t));
if (ncols == 0 || nused == 0)
+ /* There is a potential resource leak here, but it is not important. */
+ /* coverity[leaked_storage: FALSE] */
return true;
unsigned int nslots =
diff -rup binutils.orig/gold/ehframe.cc binutils-2.30/gold/ehframe.cc
--- binutils.orig/gold/ehframe.cc 2019-10-08 13:45:17.653426626 +0100
+++ binutils-2.30/gold/ehframe.cc 2019-10-08 13:48:21.580208800 +0100
@@ -1187,6 +1187,8 @@ Eh_frame::remove_ehframe_for_plt(Output_
if (this->mappings_are_done_)
this->final_data_size_ -= align_address(fde_length + 8, this->addralign());
+ /* There is a potential resource leak here, but it is not important. */
+ /* coverity[leaked_storage: FALSE] */
}
// Return the number of FDEs.
diff -rup binutils.orig/gold/fileread.cc binutils-2.30/gold/fileread.cc
--- binutils.orig/gold/fileread.cc 2019-10-08 13:45:17.657426599 +0100
+++ binutils-2.30/gold/fileread.cc 2019-10-08 13:48:33.645128913 +0100
@@ -873,6 +873,8 @@ File_view::~File_view()
Input_file::Input_file(const char* name)
: found_name_(), file_(), is_in_sysroot_(false), format_(FORMAT_NONE)
{
+ /* There is a potential resource leak here, but it is not important. */
+ /* coverity[ctor_dtor_leak: FALSE] */
this->input_argument_ =
new Input_file_argument(name, Input_file_argument::INPUT_FILE_TYPE_FILE,
"", false, Position_dependent_options());
@@ -884,6 +886,8 @@ Input_file::Input_file(const Task* task,
const unsigned char* contents, off_t size)
: file_()
{
+ /* There is a potential resource leak here, but it is not important. */
+ /* coverity[ctor_dtor_leak: FALSE] */
this->input_argument_ =
new Input_file_argument(name, Input_file_argument::INPUT_FILE_TYPE_FILE,
"", false, Position_dependent_options());
diff -rup binutils.orig/gold/gdb-index.cc binutils-2.30/gold/gdb-index.cc
--- binutils.orig/gold/gdb-index.cc 2019-10-08 13:45:17.656426606 +0100
+++ binutils-2.30/gold/gdb-index.cc 2019-10-08 13:48:46.061046705 +0100
@@ -1043,6 +1043,8 @@ Gdb_index::map_pubtable_to_dies(unsigned
map->clear();
if (!table->read_section(object, symbols, symbols_size))
+ /* There is a potential resource leak here, but it is not important. */
+ /* coverity[leaked_storage: FALSE] */
return NULL;
while (table->read_header(section_offset))
diff -rup binutils.orig/gold/gold.cc binutils-2.30/gold/gold.cc
--- binutils.orig/gold/gold.cc 2019-10-08 13:45:17.656426606 +0100
+++ binutils-2.30/gold/gold.cc 2019-10-08 13:48:57.387971709 +0100
@@ -349,6 +349,8 @@ process_incremental_input(Incremental_bi
// Incremental_binary::check_inputs should have cancelled the
// incremental update if the script has changed.
gold_assert(!ibase->file_has_changed(input_file_index));
+ /* There is a potential resource leak here, but it is not important. */
+ /* coverity[leaked_storage: FALSE] */
return new Check_script(layout, ibase, input_file_index, input_reader,
this_blocker, next_blocker);
}
@@ -362,6 +364,8 @@ process_incremental_input(Incremental_bi
{
// Queue a task to check that no references have been added to any
// of the library's unused symbols.
+ /* There is a potential resource leak here, but it is not important. */
+ /* coverity[leaked_storage: FALSE] */
return new Check_library(symtab, layout, ibase, input_file_index,
input_reader, this_blocker, next_blocker);
}
@@ -384,6 +388,8 @@ process_incremental_input(Incremental_bi
{
if (ibase->file_has_changed(lib->input_file_index()))
{
+ /* There is a potential resource leak here, but it is not important. */
+ /* coverity[leaked_storage: FALSE] */
return new Read_member(input_objects, symtab, layout, mapfile,
input_reader, this_blocker, next_blocker);
}
diff -rup binutils.orig/gold/layout.cc binutils-2.30/gold/layout.cc
--- binutils.orig/gold/layout.cc 2019-10-08 13:45:17.654426619 +0100
+++ binutils-2.30/gold/layout.cc 2019-10-08 13:49:09.579890984 +0100
@@ -487,6 +487,8 @@ Layout::Layout(int number_of_input_files
// Initialize structure needed for an incremental build.
if (parameters->incremental())
+ /* There is a potential resource leak here, but it is not important. */
+ /* coverity[ctor_dtor_leak: FALSE] */
this->incremental_inputs_ = new Incremental_inputs;
// The section name pool is worth optimizing in all cases, because
@@ -3239,6 +3241,8 @@ Layout::create_note(const char* name, in
flags, false, order, false,
false, true);
if (os == NULL)
+ /* There is a potential resource leak here, but it is not important. */
+ /* coverity[leaked_storage: FALSE] */
return NULL;
Output_section_data* posd = new Output_data_const_buffer(buffer, notehdrsz,
@@ -3301,6 +3305,8 @@ Layout::create_gnu_properties_note()
}
Output_section_data* posd = new Output_data_const(desc, descsz, 4);
os->add_output_section_data(posd);
+ /* There is a potential resource leak here, but it is not important. */
+ /* coverity[leaked_storage: FALSE] */
}
// For an executable or shared library, create a note to record the
@@ -4790,6 +4796,8 @@ Layout::create_dynamic_symtab(const Inpu
if (odyn != NULL)
odyn->add_section_address(elfcpp::DT_GNU_HASH, hashsec);
+ /* There is a potential resource leak here, but it is not important. */
+ /* coverity[leaked_storage: FALSE] */
}
}
@@ -4824,6 +4832,8 @@ Layout::create_dynamic_symtab(const Inpu
if (odyn != NULL)
odyn->add_section_address(elfcpp::DT_HASH, hashsec);
+ /* There is a potential resource leak here, but it is not important. */
+ /* coverity[leaked_storage: FALSE] */
}
}
@@ -5030,6 +5040,8 @@ Layout::create_interp(const Target* targ
false, false, false);
if (osec != NULL)
osec->add_output_section_data(odata);
+ /* There is a potential resource leak here, but it is not important. */
+ /* coverity[leaked_storage: FALSE] */
}
// Add dynamic tags for the PLT and the dynamic relocs. This is
diff -rup binutils.orig/gold/object.cc binutils-2.30/gold/object.cc
--- binutils.orig/gold/object.cc 2019-10-08 13:45:17.669426519 +0100
+++ binutils-2.30/gold/object.cc 2019-10-08 13:49:36.027715869 +0100
@@ -896,6 +896,8 @@ Sized_relobj_file<size, big_endian>::bas
if (strtab_shndx >= this->shnum())
{
this->error(_("invalid symbol table name index: %u"), strtab_shndx);
+ /* There is a potential resource leak here, but it is not important. */
+ /* coverity[leaked_storage: FALSE] */
return;
}
typename This::Shdr strtabshdr(pshdrs + strtab_shndx * This::shdr_size);
@@ -903,6 +905,8 @@ Sized_relobj_file<size, big_endian>::bas
{
this->error(_("symbol table name section has wrong type: %u"),
static_cast<unsigned int>(strtabshdr.get_sh_type()));
+ /* There is a potential resource leak here, but it is not important. */
+ /* coverity[leaked_storage: FALSE] */
return;
}
diff -rup binutils.orig/gold/output.cc binutils-2.30/gold/output.cc
--- binutils.orig/gold/output.cc 2019-10-08 13:45:17.655426612 +0100
+++ binutils-2.30/gold/output.cc 2019-10-08 13:49:48.571632811 +0100
@@ -2392,6 +2392,8 @@ Output_section::Output_section(const cha
extra_segment_flags_(0),
segment_alignment_(0),
checkpoint_(NULL),
+ /* There is a potential resource leak here, but it is not important. */
+ /* coverity[ctor_dtor_leak: FALSE] */
lookup_maps_(new Output_section_lookup_maps),
free_list_(),
free_space_fill_(NULL),
diff -rup binutils.orig/gold/plugin.cc binutils-2.30/gold/plugin.cc
--- binutils.orig/gold/plugin.cc 2019-10-08 13:45:17.669426519 +0100
+++ binutils-2.30/gold/plugin.cc 2019-10-08 13:49:58.427567551 +0100
@@ -1919,6 +1919,8 @@ unique_segment_for_sections(const char*
Object* obj = parameters->options().plugins()->get_elf_object(
section_list[i].handle);
if (obj == NULL || obj->is_dynamic())
+ /* There is a potential resource leak here, but it is not important. */
+ /* coverity[leaked_storage: FALSE] */
return LDPS_BAD_HANDLE;
unsigned int shndx = section_list[i].shndx;
Const_section_id secn_id(static_cast<Relobj*>(obj), shndx);
diff -rup binutils.orig/gold/readsyms.cc binutils-2.30/gold/readsyms.cc
--- binutils.orig/gold/readsyms.cc 2019-10-08 13:45:17.656426606 +0100
+++ binutils-2.30/gold/readsyms.cc 2019-10-08 13:50:09.964491164 +0100
@@ -274,6 +274,8 @@ Read_symbols::do_read_symbols(Workqueue*
Input_file* input_file = new Input_file(&this->input_argument_->file());
if (!input_file->open(*this->dirpath_, this, &this->dirindex_))
+ /* There is a potential resource leak here, but it is not important. */
+ /* coverity[leaked_storage: FALSE] */
return false;
// Read enough of the file to pick up the entire ELF header.
diff -rup binutils.orig/gold/script.cc binutils-2.30/gold/script.cc
--- binutils.orig/gold/script.cc 2019-10-08 13:45:17.652426632 +0100
+++ binutils-2.30/gold/script.cc 2019-10-08 13:50:19.708426645 +0100
@@ -2844,6 +2844,8 @@ script_parse_option(void* closurev, cons
// The General_options class will quite possibly store a pointer
// into mutable_option, so we can't free it. In cases the class
// does not store such a pointer, this is a memory leak. Alas. :(
+ /* There is a potential resource leak here, but it is not important. */
+ /* coverity[leaked_storage: FALSE] */
}
closure->clear_skip_on_incompatible_target();
}
diff -rup binutils.orig/gold/workqueue.cc binutils-2.30/gold/workqueue.cc
--- binutils.orig/gold/workqueue.cc 2019-10-08 13:45:17.655426612 +0100
+++ binutils-2.30/gold/workqueue.cc 2019-10-08 13:50:28.076371238 +0100
@@ -130,6 +130,8 @@ Workqueue::Workqueue(const General_optio
threads = false;
#endif
if (!threads)
+ /* There is a potential resource leak here, but it is not important. */
+ /* coverity[ctor_dtor_leak: FALSE] */
this->threader_ = new Workqueue_threader_single(this);
else
{
diff -rup binutils.orig/gprof/cg_print.c binutils-2.30/gprof/cg_print.c
--- binutils.orig/gprof/cg_print.c 2019-10-08 13:45:17.127430108 +0100
+++ binutils-2.30/gprof/cg_print.c 2019-10-08 13:50:40.732287437 +0100
@@ -1287,4 +1287,6 @@ cg_print_file_ordering (void)
printf ("%s\n", symbol_map[sym_index].file_name);
last = symbol_map[sym_index].file_name;
}
+ /* There is a potential resource leak here, but it is not important. */
+ /* coverity[leaked_storage: FALSE] */
}
diff -rup binutils.orig/gold/gold.cc binutils-2.30/gold/gold.cc
--- binutils.orig/gold/gold.cc 2019-10-08 14:45:28.076504486 +0100
+++ binutils-2.30/gold/gold.cc 2019-10-08 14:45:47.877373236 +0100
@@ -221,6 +221,8 @@ queue_initial_tasks(const General_option
else
gold_fallback(_("restart link with --incremental-full"));
}
+ /* There is a potential resource leak here, but it is not important. */
+ /* coverity[leaked_storage: FALSE] */
}
// Read the input files. We have to add the symbols to the symbol
diff -rup binutils.orig/gprof/gmon_io.c binutils-2.30/gprof/gmon_io.c
--- binutils.orig/gprof/gmon_io.c 2019-10-08 14:45:27.582507760 +0100
+++ binutils-2.30/gprof/gmon_io.c 2019-10-08 14:46:22.454144044 +0100
@@ -749,4 +749,6 @@ gmon_out_write (const char *filename)
whoami, file_format);
done (1);
}
+ /* There is a potential resource leak here, but it is not important. */
+ /* coverity[leaked_storage: FALSE] */
}
diff -rup binutils.orig/gprof/source.c binutils-2.30/gprof/source.c
--- binutils.orig/gprof/source.c 2019-10-08 14:45:27.583507753 +0100
+++ binutils-2.30/gprof/source.c 2019-10-08 14:46:33.925068010 +0100
@@ -216,6 +216,8 @@ annotate_source (Source_File *sf, unsign
if (!ofp)
{
perror (fname);
+ /* There is a potential resource leak here, but it is not important. */
+ /* coverity[leaked_storage: FALSE] */
return 0;
}
}
diff -rup binutils.orig/ld/emultempl/elf32.em binutils-2.30/ld/emultempl/elf32.em
--- binutils.orig/ld/emultempl/elf32.em 2019-10-08 14:45:27.638507389 +0100
+++ binutils-2.30/ld/emultempl/elf32.em 2019-10-08 14:47:40.916623958 +0100
@@ -1776,6 +1776,9 @@ gld${EMULATION_NAME}_before_allocation (
if (cp != NULL && *cp != '\0')
gld${EMULATION_NAME}_append_to_separated_string (&depaudit, cp);
+ /* There is a potential resource leak here, but it is not important. */
+ /* coverity[overwrite_var: FALSE] */
+ /* coverity[leaked_storage: FALSE] */
cp = more ? ++cp2 : NULL;
}
while (cp != NULL);
diff -rup binutils.orig/ld/emultempl/pe.em binutils-2.30/ld/emultempl/pe.em
--- binutils.orig/ld/emultempl/pe.em 2019-10-08 14:45:27.637507396 +0100
+++ binutils-2.30/ld/emultempl/pe.em 2019-10-08 14:48:22.133350756 +0100
@@ -1371,6 +1371,8 @@ write_build_id (bfd *abfd)
return 0;
if (bfd_bwrite (contents, size, abfd) != size)
+ /* There is a potential resource leak here, but it is not important. */
+ /* coverity[leaked_storage: FALSE] */
return 0;
/* Construct the CodeView record. */
diff -rup binutils.orig/ld/emultempl/pep.em binutils-2.30/ld/emultempl/pep.em
--- binutils.orig/ld/emultempl/pep.em 2019-10-08 14:45:27.638507389 +0100
+++ binutils-2.30/ld/emultempl/pep.em 2019-10-08 14:48:42.356216712 +0100
@@ -1338,6 +1338,8 @@ write_build_id (bfd *abfd)
return 0;
if (bfd_bwrite (contents, size, abfd) != size)
+ /* There is a potential resource leak here, but it is not important. */
+ /* coverity[leaked_storage: FALSE] */
return 0;
/* Construct the CodeView record. */
diff -rup binutils.orig/ld/ldfile.c binutils-2.30/ld/ldfile.c
--- binutils.orig/ld/ldfile.c 2019-10-08 14:45:27.635507409 +0100
+++ binutils-2.30/ld/ldfile.c 2019-10-08 14:49:24.851935030 +0100
@@ -563,6 +563,8 @@ ldfile_find_command_file (const char *na
ldfile_add_library_path (script_dir, TRUE);
search_tail_ptr = save_tail_ptr;
}
+ /* There is a potential resource leak here, but it is not important. */
+ /* coverity[leaked_storage: FALSE] */
}
/* Temporarily append script_search to the path list so that the
diff -rup binutils.orig/ld/ldlang.c binutils-2.30/ld/ldlang.c
--- binutils.orig/ld/ldlang.c 2019-10-08 14:45:27.638507389 +0100
+++ binutils-2.30/ld/ldlang.c 2019-10-08 14:49:37.283852627 +0100
@@ -9272,6 +9272,8 @@ cmdline_fopen_temp (const char *path, co
fd = open (tmpname, O_RDWR | O_CREAT | O_EXCL, 0600);
#endif
if (fd == -1)
+ /* There is a potential resource leak here, but it is not important. */
+ /* coverity[leaked_storage: FALSE] */
return NULL;
return bfd_fopen (tmpname, target, mode, fd);
}
diff -rup binutils.orig/ld/ldmain.c binutils-2.30/ld/ldmain.c
--- binutils.orig/ld/ldmain.c 2019-10-08 14:45:27.650507310 +0100
+++ binutils-2.30/ld/ldmain.c 2019-10-08 14:52:26.130733447 +0100
@@ -802,6 +802,8 @@ add_archive_element (struct bfd_link_inf
info_msg ("%I: no new IR symbols to claimi\n",
&orig_input);
input->flags.claimed = 0;
+ /* There is a potential resource leak here, but it is not important. */
+ /* coverity[leaked_storage: FALSE] */
return FALSE;
}
input->flags.claim_archive = TRUE;
@@ -855,6 +857,8 @@ add_archive_element (struct bfd_link_inf
header_printed = TRUE;
}
+ /* Coverity incorrectly believes that abfd might be NULL at this point. */
+ /* coverity[deref_after_free: FALSE] */
if (abfd->my_archive == NULL
|| bfd_is_thin_archive (abfd->my_archive))
{
diff -rup binutils.orig/ld/ldwrite.c binutils-2.30/ld/ldwrite.c
--- binutils.orig/ld/ldwrite.c 2019-10-08 14:45:27.635507409 +0100
+++ binutils-2.30/ld/ldwrite.c 2019-10-08 14:53:32.850291467 +0100
@@ -367,6 +367,8 @@ clone_section (bfd *abfd, asection *s, c
{
einfo (_ ("%F%P: cannot create split section name for %s\n"), name);
/* Silence gcc warnings. einfo exits, so we never reach here. */
+ /* There is a potential resource leak here, but it is not important. */
+ /* coverity[leaked_storage: FALSE] */
return NULL;
}
tname[5] = 0;
@@ -379,6 +381,8 @@ clone_section (bfd *abfd, asection *s, c
{
einfo (_("%F%P: clone section failed: %E\n"));
/* Silence gcc warnings. einfo exits, so we never reach here. */
+ /* There is a potential resource leak here, but it is not important. */
+ /* coverity[leaked_storage: FALSE] */
return NULL;
}
free (tname);
diff -rup binutils.orig/ld/pe-dll.c binutils-2.30/ld/pe-dll.c
--- binutils.orig/ld/pe-dll.c 2019-10-08 14:45:27.650507310 +0100
+++ binutils-2.30/ld/pe-dll.c 2019-10-08 14:54:58.385725320 +0100
@@ -1397,6 +1397,8 @@ generate_reloc (bfd *abfd, struct bfd_li
if (!bfd_generic_link_read_symbols (b))
{
einfo (_("%B%F: could not read symbols: %E\n"), b);
+ /* There is a potential resource leak here, but it is not important. */
+ /* coverity[leaked_storage: FALSE] */
return;
}
@@ -1585,6 +1587,8 @@ generate_reloc (bfd *abfd, struct bfd_li
while (reloc_sz < reloc_s->size)
reloc_d[reloc_sz++] = 0;
+ /* There is a potential resource leak here, but it is not important. */
+ /* coverity[leaked_storage: FALSE] */
}
/* Given the exiting def_file structure, print out a .DEF file that
@@ -2043,6 +2047,8 @@ make_tail (bfd *parent)
bfd_set_section_contents (abfd, id7, d7, 0, len);
bfd_make_readable (abfd);
+ /* There is a potential resource leak here, but it is not important. */
+ /* coverity[leaked_storage: FALSE] */
return abfd;
}
@@ -2323,6 +2329,8 @@ make_one (def_file_export *exp, bfd *par
bfd_set_section_contents (abfd, id6, d6, 0, len);
bfd_make_readable (abfd);
+ /* There is a potential resource leak here, but it is not important. */
+ /* coverity[leaked_storage: FALSE] */
return abfd;
}
@@ -2364,6 +2372,8 @@ make_singleton_name_imp (const char *imp
bfd_set_section_contents (abfd, id5, d5, 0, PE_IDATA4_SIZE * 2);
bfd_make_readable (abfd);
+ /* There is a potential resource leak here, but it is not important. */
+ /* coverity[leaked_storage: FALSE] */
return abfd;
}
@@ -2406,6 +2416,8 @@ make_singleton_name_thunk (const char *i
bfd_set_section_contents (abfd, id4, d4, 0, PE_IDATA4_SIZE * 2);
bfd_make_readable (abfd);
+ /* There is a potential resource leak here, but it is not important. */
+ /* coverity[leaked_storage: FALSE] */
return abfd;
}
@@ -2491,6 +2503,8 @@ make_import_fixup_entry (const char *nam
bfd_set_section_contents (abfd, id2, d2, 0, 20);
bfd_make_readable (abfd);
+ /* There is a potential resource leak here, but it is not important. */
+ /* coverity[leaked_storage: FALSE] */
return abfd;
}
diff -rup binutils.orig/ld/pe-dll.c binutils-2.30/ld/pe-dll.c
--- binutils.orig/ld/pe-dll.c 2019-10-08 15:28:31.546363527 +0100
+++ binutils-2.30/ld/pe-dll.c 2019-10-08 15:28:46.677262539 +0100
@@ -1977,6 +1977,8 @@ make_head (bfd *parent)
}
bfd_make_readable (abfd);
+ /* There is a potential resource leak here, but it is not important. */
+ /* coverity[leaked_storage: FALSE] */
return abfd;
}
@@ -2590,6 +2592,8 @@ make_runtime_pseudo_reloc (const char *n
bfd_set_section_contents (abfd, rt_rel, rt_rel_d, 0, 8);
}
bfd_make_readable (abfd);
+ /* There is a potential resource leak here, but it is not important. */
+ /* coverity[leaked_storage: FALSE] */
return abfd;
}
@@ -2634,6 +2638,8 @@ pe_create_runtime_relocator_reference (b
bfd_set_section_contents (abfd, extern_rt_rel, extern_rt_rel_d, 0, PE_IDATA5_SIZE);
bfd_make_readable (abfd);
+ /* There is a potential resource leak here, but it is not important. */
+ /* coverity[leaked_storage: FALSE] */
return abfd;
}
diff -rup binutils.orig/ld/plugin.c binutils-2.30/ld/plugin.c
--- binutils.orig/ld/plugin.c 2019-10-08 15:28:31.560363434 +0100
+++ binutils-2.30/ld/plugin.c 2019-10-08 15:29:32.579956181 +0100
@@ -314,6 +314,8 @@ plugin_get_ir_dummy_bfd (const char *nam
bfd_use_reserved_id = 1;
bfd_plugin_target = bfd_plugin_target_p (srctemplate->xvec);
+ /* There is a potential resource leak here, but it is not important. */
+ /* coverity[leaked_storage: FALSE] */
abfd = bfd_create (concat (name, IRONLY_SUFFIX, (const char *) NULL),
bfd_plugin_target ? link_info.output_bfd : srctemplate);
if (abfd != NULL)
@@ -503,6 +505,8 @@ add_symbols (void *handle, int nsyms, co
symptrs[n] = bfdsym;
rv = asymbol_from_plugin_symbol (abfd, bfdsym, syms + n);
if (rv != LDPS_OK)
+ /* There is a potential resource leak here, but it is not important. */
+ /* coverity[leaked_storage: FALSE] */
return rv;
}
bfd_set_symtab (abfd, symptrs, nsyms);
@@ -842,6 +846,8 @@ static enum ld_plugin_status
set_extra_library_path (const char *path)
{
ASSERT (called_plugin);
+ /* There is a potential resource leak here, but it is not important. */
+ /* coverity[leaked_storage: FALSE] */
ldfile_add_library_path (xstrdup (path), FALSE);
return LDPS_OK;
}
diff -rup binutils.orig/ld/testplug2.c binutils-2.30/ld/testplug2.c
--- binutils.orig/ld/testplug2.c 2019-10-08 15:28:31.547363520 +0100
+++ binutils-2.30/ld/testplug2.c 2019-10-08 15:31:08.483316106 +0100
@@ -242,7 +242,7 @@ parse_symdefstr (const char *str, struct
sym->version = NULL;
if (colon5 && colon5[1])
{
- sym->comdat_key = malloc (strlen (colon5 + 1) + 1);
+ sym->comdat_key = malloc (strlen (colon5) + 1 + 1);
if (!sym->comdat_key)
return LDPS_ERR;
strcpy (sym->comdat_key, colon5 + 1);
diff -rup binutils.orig/ld/testplug3.c binutils-2.30/ld/testplug3.c
--- binutils.orig/ld/testplug3.c 2019-10-08 15:28:31.561363427 +0100
+++ binutils-2.30/ld/testplug3.c 2019-10-08 15:31:28.351183504 +0100
@@ -241,7 +241,7 @@ parse_symdefstr (const char *str, struct
sym->version = NULL;
if (colon5 && colon5[1])
{
- sym->comdat_key = malloc (strlen (colon5 + 1) + 1);
+ sym->comdat_key = malloc (strlen (colon5) + 1 + 1);
if (!sym->comdat_key)
return LDPS_ERR;
strcpy (sym->comdat_key, colon5 + 1);
diff -rup binutils.orig/ld/testplug4.c binutils-2.30/ld/testplug4.c
--- binutils.orig/ld/testplug4.c 2019-10-08 15:28:31.547363520 +0100
+++ binutils-2.30/ld/testplug4.c 2019-10-08 15:31:38.739114175 +0100
@@ -242,7 +242,7 @@ parse_symdefstr (const char *str, struct
sym->version = NULL;
if (colon5 && colon5[1])
{
- sym->comdat_key = malloc (strlen (colon5 + 1) + 1);
+ sym->comdat_key = malloc (strlen (colon5) + 1 + 1);
if (!sym->comdat_key)
return LDPS_ERR;
strcpy (sym->comdat_key, colon5 + 1);
diff -rup binutils.orig/ld/testplug.c binutils-2.30/ld/testplug.c
--- binutils.orig/ld/testplug.c 2019-10-08 15:28:31.560363434 +0100
+++ binutils-2.30/ld/testplug.c 2019-10-08 15:30:37.140525299 +0100
@@ -263,7 +263,7 @@ parse_symdefstr (const char *str, struct
sym->version = NULL;
if (colon5 && colon5[1])
{
- sym->comdat_key = malloc (strlen (colon5 + 1) + 1);
+ sym->comdat_key = malloc (strlen (colon5) + 1 + 1);
if (!sym->comdat_key)
return LDPS_ERR;
strcpy (sym->comdat_key, colon5 + 1);
@@ -564,6 +564,8 @@ onclaim_file (const struct ld_plugin_inp
if (buffer == NULL)
return LDPS_ERR;
if (read (file->fd, buffer, bytes_to_read_before_claim) < 0)
+ /* There is a potential resource leak here, but it is not important. */
+ /* coverity[leaked_storage: FALSE] */
return LDPS_ERR;
free (buffer);
}
diff -rup binutils.orig/libiberty/argv.c binutils-2.30/libiberty/argv.c
--- binutils.orig/libiberty/argv.c 2019-10-08 15:28:32.008360444 +0100
+++ binutils-2.30/libiberty/argv.c 2019-10-08 15:32:06.258930502 +0100
@@ -477,6 +477,8 @@ expandargv (int *argcp, char ***argvp)
error:
/* We're all done with the file now. */
fclose (f);
+ /* There is a potential resource leak here, but it is not important. */
+ /* coverity[leaked_storage: FALSE] */
}
}
diff -rup binutils.orig/libiberty/regex.c binutils-2.30/libiberty/regex.c
--- binutils.orig/libiberty/regex.c 2019-10-08 15:28:32.009360437 +0100
+++ binutils-2.30/libiberty/regex.c 2019-10-08 15:33:10.899499081 +0100
@@ -2453,6 +2453,8 @@ PREFIX(regex_compile) (const char *ARG_P
/* Loop through the uncompiled pattern until we're at the end. */
while (p != pend)
{
+ /* There is a potential resource leak here, but it is not important. */
+ /* coverity[memleak: FALSE] */
PATFETCH (c);
switch (c)
diff -rup binutils.orig/libiberty/simple-object-elf.c binutils-2.30/libiberty/simple-object-elf.c
--- binutils.orig/libiberty/simple-object-elf.c 2019-10-08 15:28:32.011360423 +0100
+++ binutils-2.30/libiberty/simple-object-elf.c 2019-10-08 15:33:40.483301634 +0100
@@ -1151,6 +1151,8 @@ simple_object_elf_copy_lto_debug_section
*err = 0;
XDELETEVEC (names);
XDELETEVEC (shdrs);
+ /* There is a potential resource leak here, but it is not important. */
+ /* coverity[leaked_storage: FALSE] */
return "ELF section name out of range";
}
diff -rup binutils.orig/libiberty/simple-object-mach-o.c binutils-2.30/libiberty/simple-object-mach-o.c
--- binutils.orig/libiberty/simple-object-mach-o.c 2019-10-08 15:28:32.008360444 +0100
+++ binutils-2.30/libiberty/simple-object-mach-o.c 2019-10-08 15:34:16.530061049 +0100
@@ -1139,6 +1139,8 @@ simple_object_mach_o_write_segment (simp
write = sizeof zeroes;
if (!simple_object_internal_write (descriptor, offset, zeroes, write,
errmsg, err))
+ /* There is a potential resource leak here, but it is not important. */
+ /* coverity[leaked_storage: FALSE] */
return 0;
offset += write;
}
@@ -1245,6 +1247,8 @@ simple_object_mach_o_write_segment (simp
if (!simple_object_internal_write (descriptor, offset,
(const unsigned char *) snames,
name_offset, errmsg, err))
+ /* There is a potential resource leak here, but it is not important. */
+ /* coverity[leaked_storage: FALSE] */
return 0;
sechdr_offset += sechdrsize;
diff -rup binutils.orig/libiberty/vprintf-support.c binutils-2.30/libiberty/vprintf-support.c
--- binutils.orig/libiberty/vprintf-support.c 2019-10-08 15:28:32.008360444 +0100
+++ binutils-2.30/libiberty/vprintf-support.c 2019-10-08 15:35:10.785698942 +0100
@@ -49,6 +49,8 @@ libiberty_vprintf_buffer_size (const cha
#ifdef va_copy
va_copy (ap, args);
#else
+ /* There is a potential resource leak here, but it is not important. */
+ /* coverity[va_list_usedBeforeStarted: FALSE] */
memcpy ((PTR) &ap, (PTR) &args, sizeof (va_list));
#endif
diff -rup binutils.orig/libiberty/regex.c binutils-2.30/libiberty/regex.c
--- binutils.orig/libiberty/regex.c 2019-10-08 16:19:10.299014643 +0100
+++ binutils-2.30/libiberty/regex.c 2019-10-08 16:20:19.168553441 +0100
@@ -2454,7 +2454,7 @@ PREFIX(regex_compile) (const char *ARG_P
while (p != pend)
{
/* There is a potential resource leak here, but it is not important. */
- /* coverity[memleak: FALSE] */
+ /* coverity[error[memleak]: FALSE] */
PATFETCH (c);
switch (c)
diff -rup binutils.orig/libiberty/vprintf-support.c binutils-2.30/libiberty/vprintf-support.c
--- binutils.orig/libiberty/vprintf-support.c 2019-10-08 16:19:10.299014643 +0100
+++ binutils-2.30/libiberty/vprintf-support.c 2019-10-08 16:24:37.917821604 +0100
@@ -49,8 +49,8 @@ libiberty_vprintf_buffer_size (const cha
#ifdef va_copy
va_copy (ap, args);
#else
- /* There is a potential resource leak here, but it is not important. */
- /* coverity[va_list_usedBeforeStarted: FALSE] */
+ /* Coverity insists on va_start being used. */
+ va_start (ap);
memcpy ((PTR) &ap, (PTR) &args, sizeof (va_list));
#endif
diff -rup binutils.orig/zlib/gzlib.c binutils-2.30/zlib/gzlib.c
--- binutils.orig/zlib/gzlib.c 2019-10-08 16:19:10.304014609 +0100
+++ binutils-2.30/zlib/gzlib.c 2019-10-08 16:23:11.678398812 +0100
@@ -291,7 +291,9 @@ gzFile ZEXPORT gzdopen(fd, mode)
gzFile gz;
if (fd == -1 || (path = (char *)malloc(7 + 3 * sizeof(int))) == NULL)
- return NULL;
+ /* There is a potential resource leak here, but it is not important. */
+ /* coverity[Memory Leak: FALSE] */
+ return NULL;
#if !defined(NO_snprintf) && !defined(NO_vsnprintf)
(void)snprintf(path, 7 + 3 * sizeof(int), "<fd:%d>", fd);
#else
diff -rup binutils.orig/libiberty/regex.c binutils-2.30/libiberty/regex.c
--- binutils.orig/libiberty/regex.c 2019-10-08 17:18:32.431500412 +0100
+++ binutils-2.30/libiberty/regex.c 2019-10-08 17:26:31.013117409 +0100
@@ -2453,8 +2453,13 @@ PREFIX(regex_compile) (const char *ARG_P
/* Loop through the uncompiled pattern until we're at the end. */
while (p != pend)
{
- /* There is a potential resource leak here, but it is not important. */
- /* coverity[error[memleak]: FALSE] */
+ if (p == pend)
+ {
+ /* This free is to silence coverity. */
+ free (compile_stack.stack);
+ compile_stack.stack = NULL;
+ compile_stack.avail = 0;
+ }
PATFETCH (c);
switch (c)
diff -rup binutils.orig/zlib/gzlib.c binutils-2.30/zlib/gzlib.c
--- binutils.orig/zlib/gzlib.c 2019-10-08 17:18:32.435500384 +0100
+++ binutils-2.30/zlib/gzlib.c 2019-10-08 17:20:23.718713753 +0100
@@ -287,13 +287,15 @@ gzFile ZEXPORT gzdopen(fd, mode)
int fd;
const char *mode;
{
- char *path; /* identifier for error messages */
+ char *path = NULL; /* identifier for error messages */
gzFile gz;
if (fd == -1 || (path = (char *)malloc(7 + 3 * sizeof(int))) == NULL)
- /* There is a potential resource leak here, but it is not important. */
- /* coverity[Memory Leak: FALSE] */
- return NULL;
+ {
+ /* This free is to silence coverity. */
+ free (path);
+ return NULL;
+ }
#if !defined(NO_snprintf) && !defined(NO_vsnprintf)
(void)snprintf(path, 7 + 3 * sizeof(int), "<fd:%d>", fd);
#else