asm_begin.c: In function ‘asm_begin’:
asm_begin.c:62:7: error: potential null pointer dereference [-Werror=null-dereference]
__fsetlocking (result->out.file, FSETLOCKING_BYCALLER);
^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
We set result to NULL just before this call in case of error.
Fixed by only calling __fsetlocking when result is not NULL.
strip.c: In function ‘handle_elf.constprop’:
strip.c:1270:31: error: null pointer dereference [-Werror=null-dereference]
elf_assert ((versiondata->d_size / sizeof (Elf32_Word))
~~~~~~~~~~~^~~
src/strip.c:597:37: note: in definition of macro ‘elf_assert’
#define elf_assert(test) do { if (!(test)) goto illformed; } while (0)
^~~~
That is the wrong check, we want to check shndxdata, not versiondata here.
Signed-off-by: Mark Wielaard <mjw@redhat.com>
+2016-02-12 Mark Wielaard <mjw@redhat.com>
+
+ * asm_begin.c (prepare_text_output): Only call __fsetlocking when
+ result isn't NULL.
+
2015-10-05 Josh Stone <jistone@redhat.com>
* Makefile.am (libasm.so): Add AM_V_CCLD and AM_V_at silencers.
free (result);
result = NULL;
}
-
- __fsetlocking (result->out.file, FSETLOCKING_BYCALLER);
+ else
+ __fsetlocking (result->out.file, FSETLOCKING_BYCALLER);
}
return result;
+2016-02-12 Mark Wielaard <mjw@redhat.com>
+
+ * strip.c (handle_elf): Correct elf_assert shndxdata check.
+
2016-02-09 Mark Wielaard <mjw@redhat.com>
* readelf.c (read_encoded): Move up.
shndxdata = elf_getdata (shdr_info[shdr_info[cnt].symtab_idx].scn,
NULL);
- elf_assert ((versiondata->d_size / sizeof (Elf32_Word))
- >= shdr_info[cnt].data->d_size / elsize);
+ elf_assert (shndxdata != NULL
+ && shndxdata->d_buf != NULL
+ && ((shndxdata->d_size / sizeof (Elf32_Word))
+ >= shdr_info[cnt].data->d_size / elsize));
}
if (shdr_info[cnt].version_idx != 0)