2004-09-26 Ulrich Drepper <drepper@redhat.com>
+ * elf/readlib.c (process_file): Before complaining about too-short
+ file, check that it potentially be an ELF file. Also complain about
+ empty files. [BZ #151].
+
* scripts/test-installation.pl: Fix ld.so recognition for new
LD_TRACE_LOADED_OBJECTS output format.
Patch by <jsberg04+computing.glibc@ftml.net> [BZ #407].
if ((size_t) statbuf.st_size < sizeof (struct exec)
|| (size_t) statbuf.st_size < sizeof (ElfW(Ehdr)))
{
- error (0, 0, _("File %s is too small, not checked."), file_name);
+ if (statbuf.st_size == 0)
+ error (0, 0, _("File %s is empty, not checked."), file_name);
+ else
+ {
+ char buf[SELFMAG];
+ size_t n = MIN (statbuf.st_size, SELFMAG);
+ if (fread (buf, n, 1, file) == 1 && memcmp (buf, ELFMAG, n) == 0)
+ error (0, 0, _("File %s is too small, not checked."), file_name);
+ }
fclose (file);
return 1;
}