From: Simon Wilkinson Date: Thu, 28 Feb 2013 10:20:22 +0000 (+0000) Subject: readgroup: Don't use results if error occurs X-Git-Tag: openafs-stable-1_8_0pre1~1386 X-Git-Url: https://git.openafs.org/?p=openafs.git;a=commitdiff_plain;h=a80cb27ae89877c96c6074ab2f6a7b3e51485768 readgroup: Don't use results if error occurs If pr_ListMembers returns an error, don't try and use the results it provides, as they could be garbage. Caught by coverity (#92119) Change-Id: Idcfb464953dcdec68cba988d3fb1ab6ddad08340 Reviewed-on: http://gerrit.openafs.org/9308 Reviewed-by: Derrick Brashear Tested-by: BuildBot Reviewed-by: Jeffrey Altman --- diff --git a/src/ptserver/readgroup.c b/src/ptserver/readgroup.c index 183e05b..8dd0f73 100644 --- a/src/ptserver/readgroup.c +++ b/src/ptserver/readgroup.c @@ -156,14 +156,15 @@ main(int argc, char **argv) name, gname); fprintf(stderr, "%s (%d).\n", pr_ErrorMsg(code), code); + } else { + for (i = 0; i < lnames.namelist_len; i++) { + code = + pr_AddToGroup(lnames.namelist_val[i], gname); + report_error(code, lnames.namelist_val[i], gname); + } + if (lnames.namelist_val) + free(lnames.namelist_val); } - for (i = 0; i < lnames.namelist_len; i++) { - code = - pr_AddToGroup(lnames.namelist_val[i], gname); - report_error(code, lnames.namelist_val[i], gname); - } - if (lnames.namelist_val) - free(lnames.namelist_val); } memset(name, 0, PR_MAXNAMELEN); skip(&tmp); @@ -191,16 +192,17 @@ main(int argc, char **argv) name, gname); fprintf(stderr, "%s (%d).\n", pr_ErrorMsg(code), code); + } else { + for (i = 0; i < lnames.namelist_len; i++) { + if (verbose) + printf("Adding %s to %s.\n", + lnames.namelist_val[i], gname); + code = pr_AddToGroup(lnames.namelist_val[i], gname); + report_error(code, lnames.namelist_val[i], gname); + } + if (lnames.namelist_val) + free(lnames.namelist_val); } - for (i = 0; i < lnames.namelist_len; i++) { - if (verbose) - printf("Adding %s to %s.\n", - lnames.namelist_val[i], gname); - code = pr_AddToGroup(lnames.namelist_val[i], gname); - report_error(code, lnames.namelist_val[i], gname); - } - if (lnames.namelist_val) - free(lnames.namelist_val); } memset(name, 0, PR_MAXNAMELEN); skip(&tmp);