From: Todd C. Miller Date: Wed, 5 Jan 2005 03:40:01 +0000 (+0000) Subject: zero out struct passwd/group before filling it in so if there are X-Git-Tag: SUDO_1_7_0~754 X-Git-Url: https://granicus.if.org/sourcecode?a=commitdiff_plain;h=516ff297702a07b11d22b6c169f80a3f66f3df67;p=sudo zero out struct passwd/group before filling it in so if there are fields we don't handle they end up as 0. --- diff --git a/tsgetgrpw.c b/tsgetgrpw.c index 28eff4cb2..e2ed0b01c 100644 --- a/tsgetgrpw.c +++ b/tsgetgrpw.c @@ -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;