diff --git a/ChangeLog b/ChangeLog index 6caf58f7..7bb0156e 100644 --- a/ChangeLog +++ b/ChangeLog @@ -1,3 +1,10 @@ +2009-04-22 Nicolas François + + * libmisc/find_new_gid.c, libmisc/find_new_uid.c, + libmisc/isexpired.c, src/groupadd.c, lib/pwauth.h, lib/groupmem.c, + lib/shadowmem.c, lib/pwmem.c, lib/prototypes.h: Added splint + annotations. + 2009-04-22 Nicolas François * libmisc/loginprompt.c: Use exit(EXIT_FAILURE) instead of diff --git a/lib/groupmem.c b/lib/groupmem.c index 56f198e8..cfd4f179 100644 --- a/lib/groupmem.c +++ b/lib/groupmem.c @@ -3,7 +3,7 @@ * Copyright (c) 1996 - 2000, Marek Michałkiewicz * Copyright (c) 2001 , Michał Moskal * Copyright (c) 2005 , Tomasz Kłoczko - * Copyright (c) 2007 , Nicolas François + * Copyright (c) 2007 - 2009, Nicolas François * All rights reserved. * * Redistribution and use in source and binary forms, with or without @@ -39,7 +39,7 @@ #include "defines.h" #include "groupio.h" -struct group *__gr_dup (const struct group *grent) +/*@null@*/ /*@only@*/struct group *__gr_dup (const struct group *grent) { struct group *gr; int i; @@ -75,7 +75,7 @@ struct group *__gr_dup (const struct group *grent) return gr; } -void gr_free (struct group *grent) +void gr_free (/*@out@*/ /*@only@*/struct group *grent) { free (grent->gr_name); memzero (grent->gr_passwd, strlen (grent->gr_passwd)); diff --git a/lib/prototypes.h b/lib/prototypes.h index cd0044bd..205aae1f 100644 --- a/lib/prototypes.h +++ b/lib/prototypes.h @@ -66,8 +66,9 @@ extern int add_groups (const char *); /* age.c */ extern void agecheck (/*@null@*/const struct spwd *); -extern int expire (const struct passwd *, const struct spwd *); -extern int isexpired (const struct passwd *, const struct spwd *); +extern int expire (const struct passwd *, /*@null@*/const struct spwd *); +/* isexpired.c */ +extern int isexpired (const struct passwd *, /*@null@*/const struct spwd *); /* basename() renamed to Basename() to avoid libc name space confusion */ /* basename.c */ @@ -129,7 +130,7 @@ extern char *pw_encrypt (const char *, const char *); extern void pw_entry (const char *, struct passwd *); /* env.c */ -extern void addenv (const char *, const char *); +extern void addenv (const char *, /*@null@*/const char *); extern void initenv (void); extern void set_env (int, char *const *); extern void sanitize_env (void); @@ -139,10 +140,14 @@ extern void change_field (char *, size_t, const char *); extern int valid_field (const char *, const char *); /* find_new_gid.c */ -extern int find_new_gid (bool sys_group, gid_t *gid, gid_t const *preferred_gid); +extern int find_new_gid (bool sys_group, + gid_t *gid, + /*@null@*/gid_t const *preferred_gid); /* find_new_uid.c */ -extern int find_new_uid (bool sys_user, uid_t *uid, uid_t const *preferred_uid); +extern int find_new_uid (bool sys_user, + uid_t *uid, + /*@null@*/uid_t const *preferred_uid); /* get_gid.c */ extern int get_gid (const char *gidstr, gid_t *gid); diff --git a/lib/pwauth.h b/lib/pwauth.h index 140eef37..d6c71dda 100644 --- a/lib/pwauth.h +++ b/lib/pwauth.h @@ -2,6 +2,7 @@ * Copyright (c) 1992 - 1993, Julianne Frances Haugh * Copyright (c) 1996 - 1997, Marek Michałkiewicz * Copyright (c) 2003 - 2005, Tomasz Kłoczko + * Copyright (c) 2009 , Nicolas François * All rights reserved. * * Redistribution and use in source and binary forms, with or without @@ -34,7 +35,10 @@ */ #ifndef USE_PAM -int pw_auth (const char *cipher, const char *user, int flag, const char *input); +int pw_auth (const char *cipher, + const char *user, + int flag, + /*@null@*/const char *input); #endif /* !USE_PAM */ /* diff --git a/lib/pwmem.c b/lib/pwmem.c index d9bed3a2..9889f657 100644 --- a/lib/pwmem.c +++ b/lib/pwmem.c @@ -3,7 +3,7 @@ * Copyright (c) 1996 - 2000, Marek Michałkiewicz * Copyright (c) 2001 , Michał Moskal * Copyright (c) 2003 - 2005, Tomasz Kłoczko - * Copyright (c) 2007 , Nicolas François + * Copyright (c) 2007 - 2009, Nicolas François * All rights reserved. * * Redistribution and use in source and binary forms, with or without @@ -40,7 +40,7 @@ #include "prototypes.h" #include "pwio.h" -struct passwd *__pw_dup (const struct passwd *pwent) +/*@null@*/ /*@only@*/struct passwd *__pw_dup (const struct passwd *pwent) { struct passwd *pw; @@ -73,7 +73,7 @@ struct passwd *__pw_dup (const struct passwd *pwent) return pw; } -void pw_free (struct passwd *pwent) +void pw_free (/*@out@*/ /*@only@*/struct passwd *pwent) { free (pwent->pw_name); memzero (pwent->pw_passwd, strlen (pwent->pw_passwd)); diff --git a/lib/shadowmem.c b/lib/shadowmem.c index d4abdf15..51e17c85 100644 --- a/lib/shadowmem.c +++ b/lib/shadowmem.c @@ -3,7 +3,7 @@ * Copyright (c) 1996 - 2000, Marek Michałkiewicz * Copyright (c) 2001 , Michał Moskal * Copyright (c) 2005 , Tomasz Kłoczko - * Copyright (c) 2007 - 2008, Nicolas François + * Copyright (c) 2007 - 2009, Nicolas François * All rights reserved. * * Redistribution and use in source and binary forms, with or without @@ -41,7 +41,7 @@ #include #include "shadowio.h" -struct spwd *__spw_dup (const struct spwd *spent) +/*@null@*/ /*@only@*/struct spwd *__spw_dup (const struct spwd *spent) { struct spwd *sp; @@ -62,7 +62,7 @@ struct spwd *__spw_dup (const struct spwd *spent) return sp; } -void spw_free (struct spwd *spent) +void spw_free (/*@out@*/ /*@only@*/struct spwd *spent) { free (spent->sp_namp); memzero (spent->sp_pwdp, strlen (spent->sp_pwdp)); diff --git a/libmisc/find_new_gid.c b/libmisc/find_new_gid.c index feb735fa..5c260b72 100644 --- a/libmisc/find_new_gid.c +++ b/libmisc/find_new_gid.c @@ -1,6 +1,6 @@ /* * Copyright (c) 1991 - 1994, Julianne Frances Haugh - * Copyright (c) 2008 , Nicolas François + * Copyright (c) 2008 - 2009, Nicolas François * All rights reserved. * * Redistribution and use in source and binary forms, with or without @@ -47,7 +47,9 @@ * * Return 0 on success, -1 if no unused GIDs are available. */ -int find_new_gid (bool sys_group, gid_t *gid, gid_t const *preferred_gid) +int find_new_gid (bool sys_group, + gid_t *gid, + /*@null@*/gid_t const *preferred_gid) { const struct group *grp; gid_t gid_min, gid_max, group_id; diff --git a/libmisc/find_new_uid.c b/libmisc/find_new_uid.c index edf2d8bd..74f5709c 100644 --- a/libmisc/find_new_uid.c +++ b/libmisc/find_new_uid.c @@ -1,6 +1,6 @@ /* * Copyright (c) 1991 - 1994, Julianne Frances Haugh - * Copyright (c) 2008 , Nicolas François + * Copyright (c) 2008 - 2009, Nicolas François * All rights reserved. * * Redistribution and use in source and binary forms, with or without @@ -47,7 +47,9 @@ * * Return 0 on success, -1 if no unused UIDs are available. */ -int find_new_uid (bool sys_user, uid_t *uid, uid_t const *preferred_uid) +int find_new_uid (bool sys_user, + uid_t *uid, + /*@null@*/uid_t const *preferred_uid) { const struct passwd *pwd; uid_t uid_min, uid_max, user_id; diff --git a/libmisc/isexpired.c b/libmisc/isexpired.c index aad91c5e..416a21e4 100644 --- a/libmisc/isexpired.c +++ b/libmisc/isexpired.c @@ -2,7 +2,7 @@ * Copyright (c) 1989 - 1994, Julianne Frances Haugh * Copyright (c) 1996 - 1997, Marek Michałkiewicz * Copyright (c) 2001 - 2005, Tomasz Kłoczko - * Copyright (c) 2008 , Nicolas François + * Copyright (c) 2008 - 2009, Nicolas François * All rights reserved. * * Redistribution and use in source and binary forms, with or without @@ -59,7 +59,7 @@ * now disabled. (password cannot be changed) * 3: The account has expired */ -int isexpired (const struct passwd *pw, const struct spwd *sp) +int isexpired (const struct passwd *pw, /*@null@*/const struct spwd *sp) { long now; diff --git a/src/groupadd.c b/src/groupadd.c index b00e3cdc..55de85e9 100644 --- a/src/groupadd.c +++ b/src/groupadd.c @@ -72,10 +72,10 @@ */ char *Prog; -static char *group_name; +static /*@null@*/char *group_name; static gid_t group_id; -static char *group_passwd; -static char *empty_list = NULL; +static /*@null@*/char *group_passwd; +static /*@null@*/char *empty_list = NULL; static bool oflg = false; /* permit non-unique group ID to be specified with -g */ static bool gflg = false; /* ID value for the new group */ @@ -605,6 +605,6 @@ int main (int argc, char **argv) nscd_flush_cache ("group"); exit (E_SUCCESS); - /* NOT REACHED */ + /*@notreached@*/ }