nvdimm.lists.linux.dev archive mirror
 help / color / mirror / Atom feed
* [PATCH ndctl] dimm: re-fix potential fd leakage in dimm_action()
@ 2021-01-06 14:43 Michal Suchanek
  2021-02-15 18:15 ` Jeff Moyer
  0 siblings, 1 reply; 2+ messages in thread
From: Michal Suchanek @ 2021-01-06 14:43 UTC (permalink / raw)
  To: linux-nvdimm; +Cc: Michal Suchanek, Zhiqiang Liu

There are cases not covered by the original fix and cases added by the
latter patch.

Also there is one case of usage added without returning from the
function.

Fixes: ff434d87ccbd ("dimm: fix potential fd leakage in dimm_action()")
Fixes: 41a7e24af5db ("ndctl/dimm: Auto-arm firmware activation")

Signed-off-by: Michal Suchanek <msuchanek@suse.de>
---
 ndctl/dimm.c | 14 ++++++++++----
 1 file changed, 10 insertions(+), 4 deletions(-)

diff --git a/ndctl/dimm.c b/ndctl/dimm.c
index 09ce49e1d2ca..1c177b5494ec 100644
--- a/ndctl/dimm.c
+++ b/ndctl/dimm.c
@@ -1333,12 +1333,15 @@ static int dimm_action(int argc, const char **argv, struct ndctl_ctx *ctx,
 	if (param.arm_set && param.disarm_set) {
 		fprintf(stderr, "set either --arm, or --disarm, not both\n");
 		usage_with_options(u, options);
+		rc = -EINVAL;
+		goto out_close_fout;
 	}
 
 	if (param.disarm_set && !param.disarm) {
 		fprintf(stderr, "--no-disarm syntax not supported\n");
 		usage_with_options(u, options);
-		return -EINVAL;
+		rc = -EINVAL;
+		goto out_close_fout;
 	}
 
 	if (!param.infile) {
@@ -1351,13 +1354,15 @@ static int dimm_action(int argc, const char **argv, struct ndctl_ctx *ctx,
 			if (!param.arm_set && !param.disarm_set) {
 				fprintf(stderr, "require --arm, or --disarm\n");
 				usage_with_options(u, options);
-				return -EINVAL;
+				rc = -EINVAL;
+				goto out_close_fout;
 			}
 
 			if (param.arm_set && !param.arm) {
 				fprintf(stderr, "--no-arm syntax not supported\n");
 				usage_with_options(u, options);
-				return -EINVAL;
+				rc = -EINVAL;
+				goto out_close_fout;
 			}
 		}
 		actx.f_in = stdin;
@@ -1425,7 +1430,8 @@ static int dimm_action(int argc, const char **argv, struct ndctl_ctx *ctx,
 		if (count > 1) {
 			error("write-labels only supports writing a single dimm\n");
 			usage_with_options(u, options);
-			return -EINVAL;
+			rc = -EINVAL;
+			goto out_close_fin_fout;
 		} else if (single)
 			rc = action(single, &actx);
 	}
-- 
2.26.2
_______________________________________________
Linux-nvdimm mailing list -- linux-nvdimm@lists.01.org
To unsubscribe send an email to linux-nvdimm-leave@lists.01.org

^ permalink raw reply related	[flat|nested] 2+ messages in thread

* Re: [PATCH ndctl] dimm: re-fix potential fd leakage in dimm_action()
  2021-01-06 14:43 [PATCH ndctl] dimm: re-fix potential fd leakage in dimm_action() Michal Suchanek
@ 2021-02-15 18:15 ` Jeff Moyer
  0 siblings, 0 replies; 2+ messages in thread
From: Jeff Moyer @ 2021-02-15 18:15 UTC (permalink / raw)
  To: Michal Suchanek; +Cc: linux-nvdimm, Zhiqiang Liu

Michal Suchanek <msuchanek@suse.de> writes:

> There are cases not covered by the original fix and cases added by the
> latter patch.
>
> Also there is one case of usage added without returning from the
> function.
>
> Fixes: ff434d87ccbd ("dimm: fix potential fd leakage in dimm_action()")
> Fixes: 41a7e24af5db ("ndctl/dimm: Auto-arm firmware activation")
>
> Signed-off-by: Michal Suchanek <msuchanek@suse.de>
> ---
>  ndctl/dimm.c | 14 ++++++++++----
>  1 file changed, 10 insertions(+), 4 deletions(-)
>
> diff --git a/ndctl/dimm.c b/ndctl/dimm.c
> index 09ce49e1d2ca..1c177b5494ec 100644
> --- a/ndctl/dimm.c
> +++ b/ndctl/dimm.c
> @@ -1333,12 +1333,15 @@ static int dimm_action(int argc, const char **argv, struct ndctl_ctx *ctx,
>  	if (param.arm_set && param.disarm_set) {
>  		fprintf(stderr, "set either --arm, or --disarm, not both\n");
>  		usage_with_options(u, options);
> +		rc = -EINVAL;
> +		goto out_close_fout;

usage_with_options calls exit():

void usage_with_options(const char * const *usagestr,
                        const struct option *opts)
{
        usage_with_options_internal(usagestr, opts, 0);
        exit(129);
}

So I don't think this patch is necessary.

Cheers,
Jeff
_______________________________________________
Linux-nvdimm mailing list -- linux-nvdimm@lists.01.org
To unsubscribe send an email to linux-nvdimm-leave@lists.01.org

^ permalink raw reply	[flat|nested] 2+ messages in thread

end of thread, other threads:[~2021-02-15 18:14 UTC | newest]

Thread overview: 2+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2021-01-06 14:43 [PATCH ndctl] dimm: re-fix potential fd leakage in dimm_action() Michal Suchanek
2021-02-15 18:15 ` Jeff Moyer

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).