* lib/commonio.c: Do not assumes eptr is always notnull.

Updated splint annotations.
This commit is contained in:
nekral-guest 2009-04-25 13:41:52 +00:00
parent 3a37388d43
commit 71f7f777ec
2 changed files with 21 additions and 10 deletions

View File

@ -1,6 +1,7 @@
2009-04-25 Nicolas François <nicolas.francois@centraliens.net> 2009-04-25 Nicolas François <nicolas.francois@centraliens.net>
* lib/commonio.h, lib/commonio.c: Added splint annotations. * lib/commonio.h, lib/commonio.c: Added splint annotations.
* lib/commonio.c: Do not assumes eptr is always notnull.
2009-04-25 Nicolas François <nicolas.francois@centraliens.net> 2009-04-25 Nicolas François <nicolas.francois@centraliens.net>

View File

@ -64,11 +64,13 @@ static void free_linked_list (struct commonio_db *);
static void add_one_entry (struct commonio_db *, /*@owned@*/struct commonio_entry *); static void add_one_entry (struct commonio_db *, /*@owned@*/struct commonio_entry *);
static bool name_is_nis (const char *name); static bool name_is_nis (const char *name);
static int write_all (const struct commonio_db *); static int write_all (const struct commonio_db *);
static struct commonio_entry *find_entry_by_name (struct commonio_db *, static /*@dependent@*/ /*@null@*/struct commonio_entry *find_entry_by_name (
const char *); struct commonio_db *,
static struct commonio_entry *next_entry_by_name (struct commonio_db *, const char *);
struct commonio_entry *pos, static /*@dependent@*/ /*@null@*/struct commonio_entry *next_entry_by_name (
const char *); struct commonio_db *,
struct commonio_entry *pos,
const char *);
static int lock_count = 0; static int lock_count = 0;
static bool nscd_need_reload = false; static bool nscd_need_reload = false;
@ -703,6 +705,9 @@ int commonio_sort_wrt (struct commonio_db *shadow, struct commonio_db *passwd)
for (spw_ptr = shadow->head; for (spw_ptr = shadow->head;
NULL != spw_ptr; NULL != spw_ptr;
spw_ptr = spw_ptr->next) { spw_ptr = spw_ptr->next) {
if (NULL == spw_ptr->eptr) {
continue;
}
if (strcmp (name, shadow->ops->getname (spw_ptr->eptr)) if (strcmp (name, shadow->ops->getname (spw_ptr->eptr))
== 0) { == 0) {
break; break;
@ -738,6 +743,7 @@ int commonio_sort_wrt (struct commonio_db *shadow, struct commonio_db *passwd)
* It returns 0 if all the entries could be written correctly. * It returns 0 if all the entries could be written correctly.
*/ */
static int write_all (const struct commonio_db *db) static int write_all (const struct commonio_db *db)
/*@requires notnull db->fp@*/
{ {
const struct commonio_entry *p; const struct commonio_entry *p;
void *eptr; void *eptr;
@ -745,6 +751,7 @@ static int write_all (const struct commonio_db *db)
for (p = db->head; NULL != p; p = p->next) { for (p = db->head; NULL != p; p = p->next) {
if (p->changed) { if (p->changed) {
eptr = p->eptr; eptr = p->eptr;
assert (NULL != eptr);
if (db->ops->put (eptr, db->fp) != 0) { if (db->ops->put (eptr, db->fp) != 0) {
return -1; return -1;
} }
@ -762,6 +769,7 @@ static int write_all (const struct commonio_db *db)
int commonio_close (struct commonio_db *db) int commonio_close (struct commonio_db *db)
/*@requires notnull db->fp@*/
{ {
char buf[1024]; char buf[1024];
int errors = 0; int errors = 0;
@ -888,9 +896,10 @@ int commonio_close (struct commonio_db *db)
return errors == 0; return errors == 0;
} }
static struct commonio_entry *next_entry_by_name (struct commonio_db *db, static /*@dependent@*/ /*@null@*/struct commonio_entry *next_entry_by_name (
struct commonio_entry *pos, struct commonio_db *db,
const char *name) /*@null@*/struct commonio_entry *pos,
const char *name)
{ {
struct commonio_entry *p; struct commonio_entry *p;
void *ep; void *ep;
@ -909,8 +918,9 @@ static struct commonio_entry *next_entry_by_name (struct commonio_db *db,
return p; return p;
} }
static struct commonio_entry *find_entry_by_name (struct commonio_db *db, static /*@dependent@*/ /*@null@*/struct commonio_entry *find_entry_by_name (
const char *name) struct commonio_db *db,
const char *name)
{ {
return next_entry_by_name(db, db->head, name); return next_entry_by_name(db, db->head, name);
} }