From 23e3939b4738076c0ed91baf6bc8ec1dff74f1f5 Mon Sep 17 00:00:00 2001 From: "Mark A. Grondona" <mgrondona@llnl.gov> Date: Tue, 26 Mar 2013 14:44:30 -0700 Subject: [PATCH] Fix spank_option_getopt in local context In local context (srun, sbatch, salloc), spank_option_getopt() would always return that an option was found due to a missing check for spopt->found in spank_option_getopt. This patch fixes the issue. --- src/common/plugstack.c | 7 +++++++ 1 file changed, 7 insertions(+) diff --git a/src/common/plugstack.c b/src/common/plugstack.c index 6d306f38e17..c3ca324d31c 100644 --- a/src/common/plugstack.c +++ b/src/common/plugstack.c @@ -1528,6 +1528,13 @@ spank_option_getopt (spank_t sp, struct spank_option *opt, char **argp) (ListFindF) _opt_by_name, opt->name); if (spopt) { + /* + * Return failure if option is cached but hasn't been + * used on the command line or specified by user. + */ + if (!spopt->found) + return (ESPANK_ERROR); + if (opt->has_arg && argp) *argp = spopt->optarg; return (ESPANK_SUCCESS); -- GitLab