lib: fix NULL checks for filenames iterators

The API documentation (notmuch.h) states that the parameter may be NULL,
but the implementation only checked the current element, potentially
dereferencing a NULL pointer in the process.

Signed-off-by: Sascha Silbe <sascha-pgp@silbe.org>
This commit is contained in:
Sascha Silbe 2012-06-24 18:29:24 +02:00 committed by David Bremner
parent 7cd3cd3003
commit 8dd4e9770e

View file

@ -54,7 +54,7 @@ notmuch_filenames_valid (notmuch_filenames_t *filenames)
const char * const char *
notmuch_filenames_get (notmuch_filenames_t *filenames) notmuch_filenames_get (notmuch_filenames_t *filenames)
{ {
if (filenames->iterator == NULL) if ((filenames == NULL) || (filenames->iterator == NULL))
return NULL; return NULL;
return filenames->iterator->string; return filenames->iterator->string;
@ -63,7 +63,7 @@ notmuch_filenames_get (notmuch_filenames_t *filenames)
void void
notmuch_filenames_move_to_next (notmuch_filenames_t *filenames) notmuch_filenames_move_to_next (notmuch_filenames_t *filenames)
{ {
if (filenames->iterator == NULL) if ((filenames == NULL) || (filenames->iterator == NULL))
return; return;
filenames->iterator = filenames->iterator->next; filenames->iterator = filenames->iterator->next;