]> granicus.if.org Git - shadow/commitdiff
* libmisc/getgr_nam_gid.c: Added support for NULL argument.
authornekral-guest <nekral-guest@5a98b0ae-9ef6-0310-add3-de5d479b70d7>
Sat, 11 Apr 2009 16:23:21 +0000 (16:23 +0000)
committernekral-guest <nekral-guest@5a98b0ae-9ef6-0310-add3-de5d479b70d7>
Sat, 11 Apr 2009 16:23:21 +0000 (16:23 +0000)
* libmisc/chowntty.c: Reuse getgr_nam_gid(), and get rid of atol().

ChangeLog
libmisc/chowntty.c
libmisc/getgr_nam_gid.c

index 68a25ba2d836008b02eedc6831a44fab1cd71f77..ea829baaad8c52ce72a223f6585b2fd85fef57ba 100644 (file)
--- a/ChangeLog
+++ b/ChangeLog
@@ -1,3 +1,8 @@
+2009-04-11  Nicolas François  <nicolas.francois@centraliens.net>
+
+       * libmisc/getgr_nam_gid.c: Added support for NULL argument.
+       * libmisc/chowntty.c: Reuse getgr_nam_gid(), and get rid of atol().
+
 2009-04-11  Peter Vrabec  <pvrabec@redhat.com>
 
        * libmisc/find_new_gid.c, libmisc/find_new_uid.c: For system
index 3d4da1074b5a6fd36bf6d0dd3be57a8be43b1ead..6b97ab768f9e8aec1e8c79439d3f3035adb3724e 100644 (file)
@@ -2,7 +2,7 @@
  * Copyright (c) 1989 - 1994, Julianne Frances Haugh
  * Copyright (c) 1996 - 2001, Marek Michałkiewicz
  * Copyright (c) 2003 - 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
@@ -51,7 +51,6 @@
 
 void chown_tty (const struct passwd *info)
 {
-       char *group;            /* TTY group name or number */
        struct group *grent;
        gid_t gid;
 
@@ -60,18 +59,11 @@ void chown_tty (const struct passwd *info)
         * ID.  Otherwise, use the user's primary group ID.
         */
 
-       group = getdef_str ("TTYGROUP");
-       if (NULL == group) {
-               gid = info->pw_gid;
-       } else if ((group[0] >= '0') && (group[0] <= '9')) {
-               gid = (gid_t) atol (group);
+       grent = getgr_nam_gid (getdef_str ("TTYGROUP"));
+       if (NULL != grent) {
+               gid = grent->gr_gid;
        } else {
-               grent = getgrnam (group); /* local, no need for xgetgrnam */
-               if (NULL != grent) {
-                       gid = grent->gr_gid;
-               } else {
-                       gid = info->pw_gid;
-               }
+               gid = info->pw_gid;
        }
 
        /*
index 7120304c3d97314fc55a0b8221952c68f30b4da1..5398a2d90277c6d05bfd5c6f7b8bbac8b6f6d66e 100644 (file)
@@ -49,6 +49,10 @@ extern struct group *getgr_nam_gid (const char *grname)
        long long int gid;
        char *endptr;
 
+       if (NULL == grname) {
+               return NULL;
+       }
+
        errno = 0;
        gid = strtoll (grname, &endptr, 10);
        if (   ('\0' != *grname)