]> granicus.if.org Git - shadow/commitdiff
* hushed returns a bool instead of int.
authornekral-guest <nekral-guest@5a98b0ae-9ef6-0310-add3-de5d479b70d7>
Sun, 25 May 2008 21:52:14 +0000 (21:52 +0000)
committernekral-guest <nekral-guest@5a98b0ae-9ef6-0310-add3-de5d479b70d7>
Sun, 25 May 2008 21:52:14 +0000 (21:52 +0000)
* Avoid assignments in comparisons.
* (hushed) Change type of found to bool.
* Add brackets.
* Always check if the user or the shell is in
  the file. Do not check the first character of the line first. This
  is simpler and match better with the HUSHLOGIN_FILE documentation.

ChangeLog
libmisc/hushed.c

index 1dc0f2c01c314e27a8619894661214c2b264a25a..94ffeee8e6782b7d07fbda23ff1bbb1ed4080380 100644 (file)
--- a/ChangeLog
+++ b/ChangeLog
@@ -1,10 +1,20 @@
+2008-05-25  Nicolas François  <nicolas.francois@centraliens.net>
+
+       * libmisc/hushed.c: hushed returns a bool instead of int.
+       * libmisc/hushed.c: Avoid assignments in comparisons.
+       * libmisc/hushed.c (hushed): Change type of found to bool.
+       * libmisc/hushed.c: Add brackets.
+       * libmisc/hushed.c: Always check if the user or the shell is in
+       the file. Do not check the first character of the line first. This
+       is simpler and match better with the HUSHLOGIN_FILE documentation.
+
 2008-05-25  Nicolas François  <nicolas.francois@centraliens.net>
 
        * lib/getdef.h, lib/getdef.c: getdef_bool returns a bool instead
        of int.
        * lib/getdef.c: Change typo of def_loaded to bool.
        * lib/getdef.c: Add brackets.
-       * lib/getdef.c: Avoid assignment in comparisons.
+       * lib/getdef.c: Avoid assignments in comparisons.
 
 2008-05-25  Nicolas François  <nicolas.francois@centraliens.net>
 
index ccfb9afb6217729dd06d41f030c793f0b4b5416f..327487ae335acba9248a4aefb9c666d600b8ec1c 100644 (file)
 
 #include <sys/types.h>
 #include <stdio.h>
+#include <pwd.h>
 #include "defines.h"
 #include "prototypes.h"
 #include "getdef.h"
-#include <pwd.h>
 /*
  * hushed - determine if a user receives login messages
  *
  * Look in the hushed-logins file (or user's home directory) to see
  * if the user is to receive the login-time messages.
  */
-int hushed (const struct passwd *pw)
+bool hushed (const struct passwd *pw)
 {
        char *hushfile;
        char buf[BUFSIZ];
-       int found;
+       bool found;
        FILE *fp;
 
        /*
@@ -58,8 +58,10 @@ int hushed (const struct passwd *pw)
         * defined, default to a noisy login.
         */
 
-       if ((hushfile = getdef_str ("HUSHLOGIN_FILE")) == NULL)
-               return 0;
+       hushfile = getdef_str ("HUSHLOGIN_FILE");
+       if (NULL == hushfile) {
+               return false;
+       }
 
        /*
         * If this is not a fully rooted path then see if the
@@ -73,17 +75,19 @@ int hushed (const struct passwd *pw)
 
        /*
         * If this is a fully rooted path then go through the file
-        * and see if this user is in there.
+        * and see if this user, or its shell is in there.
         */
 
-       if ((fp = fopen (hushfile, "r")) == NULL)
-               return 0;
-
-       for (found = 0; !found && fgets (buf, sizeof buf, fp);) {
+       fp = fopen (hushfile, "r");
+       if (NULL == fp) {
+               return false;
+       }
+       for (found = false; !found && (fgets (buf, sizeof buf, fp) != NULL);) {
                buf[strlen (buf) - 1] = '\0';
-               found = !strcmp (buf,
-                                buf[0] == '/' ? pw->pw_shell : pw->pw_name);
+               found = (strcmp (buf, pw->pw_shell) == 0) ||
+                       (strcmp (buf, pw->pw_name) == 0);
        }
        (void) fclose (fp);
        return found;
 }
+