diff options
Diffstat (limited to 'contrib/expat/xmlwf/unixfilemap.c')
-rwxr-xr-x | contrib/expat/xmlwf/unixfilemap.c | 7 |
1 files changed, 7 insertions, 0 deletions
diff --git a/contrib/expat/xmlwf/unixfilemap.c b/contrib/expat/xmlwf/unixfilemap.c index 22048c82ed76..93adce32e826 100755 --- a/contrib/expat/xmlwf/unixfilemap.c +++ b/contrib/expat/xmlwf/unixfilemap.c @@ -44,6 +44,13 @@ filemap(const char *name, } nbytes = sb.st_size; + /* mmap fails for zero length files */ + if (nbytes == 0) { + static const char c = '\0'; + processor(&c, 0, name, arg); + close(fd); + return 1; + } p = (void *)mmap((caddr_t)0, (size_t)nbytes, PROT_READ, MAP_FILE|MAP_PRIVATE, fd, (off_t)0); if (p == (void *)-1) { |