From 6682261c9fdc0ea76a96b166fba2746b421dee02 Mon Sep 17 00:00:00 2001 From: Simon Wilkinson Date: Sat, 2 Mar 2013 11:44:02 +0000 Subject: [PATCH] readgroup: Make sure user supplies a groupfile If the user supplies enough command line arguments, but doesn't provide a groupfile, then we can end up trying to open whatever garbage is on the stack. Once we've finished parsing the command line arguments, make sure that a filename was supplied. Caught by coverity (#986008) Reviewed-on: http://gerrit.openafs.org/9440 Tested-by: BuildBot Reviewed-by: Derrick Brashear Reviewed-by: Jeffrey Altman (cherry picked from commit 3c564444cf1c0bad25792b10edc158030e180369) Change-Id: I8d0bb6ec6a39ad095959ede0252dc6f00777515e Reviewed-on: http://gerrit.openafs.org/11051 Tested-by: BuildBot Reviewed-by: Andrew Deason Reviewed-by: Chas Williams - CONTRACTOR Reviewed-by: Stephan Wiesand --- src/ptserver/readgroup.c | 9 +++++++++ 1 file changed, 9 insertions(+) diff --git a/src/ptserver/readgroup.c b/src/ptserver/readgroup.c index 2404fc91d..b5af33705 100644 --- a/src/ptserver/readgroup.c +++ b/src/ptserver/readgroup.c @@ -74,6 +74,8 @@ main(int argc, char **argv) afs_int32 i; afs_int32 fail = 0; + buf[0] = '\0'; + if (argc < 2) { fprintf(stderr, "Usage: readgroup [-v] [-c cellname] groupfile.\n"); exit(0); @@ -90,6 +92,13 @@ main(int argc, char **argv) strncpy(buf, argv[i], 150); } } + + /* Catch missing filename */ + if (buf[0] == '\0') { + fprintf(stderr, "Usage: readgroup [-v] [-c cellname] groupfile.\n"); + exit(0); + } + code = pr_Initialize(2, AFSDIR_CLIENT_ETC_DIRPATH, cellname); free(cellname); if (code) { -- 2.39.5