# HG changeset patch # User mortenp # Date 1225393989 -39600 # Node ID 945ef20e9d08372edaa761db061fd15b79eb61c4 # Parent 39fe89c4e420b014f4dd4f101070ed5c8e2fe839 Fixed mmap()ing of zero-sized files (Robin H. Johnson) diff -r 39fe89c4e420 -r 945ef20e9d08 ChangeLog --- a/ChangeLog Tue Nov 06 08:35:03 2007 +1100 +++ b/ChangeLog Fri Oct 31 06:13:09 2008 +1100 @@ -1,3 +1,4 @@ + o Fixed mmap()ing of zero-sized files (Robin H. Johnson) o Fixed mlmmj-recieve [sic] for architectures where sizeof(int) and sizeof(char *) differ o Added support for the 'originalmail' keyword (Sascha Sommer) diff -r 39fe89c4e420 -r 945ef20e9d08 src/getaddrsfromfd.c --- a/src/getaddrsfromfd.c Tue Nov 06 08:35:03 2007 +1100 +++ b/src/getaddrsfromfd.c Fri Oct 31 06:13:09 2008 +1100 @@ -21,6 +21,10 @@ log_error(LOG_ARGS, "Could not fstat fd"); return -1; } + /* mmap of 0-bytes is invalid */ + if(st.st_size == 0) { + return 0; + } start = mmap(0, st.st_size, PROT_READ, MAP_SHARED, fd, 0); if(start == MAP_FAILED) { diff -r 39fe89c4e420 -r 945ef20e9d08 src/mlmmj-list.c --- a/src/mlmmj-list.c Tue Nov 06 08:35:03 2007 +1100 +++ b/src/mlmmj-list.c Fri Oct 31 06:13:09 2008 +1100 @@ -69,6 +69,11 @@ if(!S_ISREG(st.st_mode)) return -1; + /* Nobody there */ + if(st.st_size == 0) { + return 0; + } + start = mmap(0, st.st_size, PROT_READ, MAP_SHARED, fd, 0); if(start == MAP_FAILED) return -1;