X-Git-Url: https://diplodocus.org/git/nmh/blobdiff_plain/e491542da563673b49c6f6df9948ffaffbeed4fb..28a967a12cfb0b16a136223082e07884eecba715:/sbr/folder_read.c diff --git a/sbr/folder_read.c b/sbr/folder_read.c index 170946b4..5c52abde 100644 --- a/sbr/folder_read.c +++ b/sbr/folder_read.c @@ -27,7 +27,6 @@ folder_read (char *name, int lockflag) { int msgnum, prefix_len, len, *mi; struct msgs *mp; - struct stat st; struct dirent *dp; DIR *dd; bvector_t *v; @@ -39,11 +38,6 @@ folder_read (char *name, int lockflag) return NULL; } - if (stat (name, &st) == -1) { - free (name); - return NULL; - } - /* Allocate the main structure for folder information */ mp = (struct msgs *) mh_xmalloc ((size_t) sizeof(*mp)); @@ -130,6 +124,16 @@ folder_read (char *name, int lockflag) /* for testing, allocate minimal necessary space */ /* mp->hghoff = max (mp->hghmsg, 1); */ + /* + * If for some reason hghoff < lowoff (like we got an integer overflow) + * the complain about this now. + */ + + if (mp->hghoff < mp->lowoff) { + adios(NULL, "Internal failure: high message limit < low message " + "limit; possible overflow?"); + } + /* * Allocate space for status of each message. */