]> granicus.if.org Git - sudo/commitdiff
zero out struct passwd/group before filling it in so if there are
authorTodd C. Miller <Todd.Miller@courtesan.com>
Wed, 5 Jan 2005 03:40:01 +0000 (03:40 +0000)
committerTodd C. Miller <Todd.Miller@courtesan.com>
Wed, 5 Jan 2005 03:40:01 +0000 (03:40 +0000)
fields we don't handle they end up as 0.

tsgetgrpw.c

index 28eff4cb2629240817ad0c7970c7adeb4c835ffa..e2ed0b01c294379716d2bae2a67b9b3a77be058f 100644 (file)
@@ -113,6 +113,7 @@ sudo_getpwnam(name)
     else if ((pwf = fopen(pwfile, "r")) == NULL)
        return(NULL);
 
+    memset(&tpw, 0, sizeof(tpw));
     nlen = strlen(name);
     while (fgets(buf, sizeof(buf), pwf)) {
        if (strncmp(buf, name, nlen) != 0 || buf[nlen] != ':')
@@ -182,6 +183,7 @@ sudo_getpwuid(uid)
     else if ((pwf = fopen(pwfile, "r")) == NULL)
        return(NULL);
 
+    memset(&tpw, 0, sizeof(tpw));
     while (fgets(buf, sizeof(buf), pwf)) {
        if ((tpw.pw_name = strtok(buf, ":")) == NULL)
            continue;
@@ -283,6 +285,7 @@ sudo_getgrnam(name)
        return(NULL);
 
     nlen = strlen(name);
+    memset(&tgr, 0, sizeof(tgr));
     while (fgets(buf, sizeof(buf), grf)) {
        if (strncmp(buf, name, nlen) != 0 || buf[nlen] != ':')
            continue;
@@ -358,6 +361,7 @@ sudo_getgrgid(gid)
     else if ((grf = fopen(grfile, "r")) == NULL)
        return(NULL);
 
+    memset(&tgr, 0, sizeof(tgr));
     while (fgets(buf, sizeof(buf), grf)) {
        if ((tgr.gr_name = strtok(buf, ":")) == NULL)
            continue;