2018-06-14 16:28:28

by Kenneth Dsouza

[permalink] [raw]
Subject: [PATCH] nfs-utils: Fix a minor memory leak in generate_mount_unit and generate_target.

Free allocated memory for path before return.
Signed-off-by: Kenneth D'souza <[email protected]>
---
systemd/rpc-pipefs-generator.c | 8 ++++++++
1 file changed, 8 insertions(+)

diff --git a/systemd/rpc-pipefs-generator.c b/systemd/rpc-pipefs-generator.c
index 6e1d69c..0b5da11 100644
--- a/systemd/rpc-pipefs-generator.c
+++ b/systemd/rpc-pipefs-generator.c
@@ -35,7 +35,10 @@ static int generate_mount_unit(const char *pipefs_path, const char *pipefs_unit,
sprintf(path, "%s/%s", dirname, pipefs_unit);
f = fopen(path, "w");
if (!f)
+ {
+ free(path);
return 1;
+ }

fprintf(f, "# Automatically generated by rpc-pipefs-generator\n\n[Unit]\n");
fprintf(f, "Description=RPC Pipe File System\n");
@@ -48,6 +51,7 @@ static int generate_mount_unit(const char *pipefs_path, const char *pipefs_unit,
fprintf(f, "Type=rpc_pipefs\n");

fclose(f);
+ free(path);
return 0;
}

@@ -76,12 +80,16 @@ int generate_target(char *pipefs_path, const char *dirname)
strcat(path, filebase);
f = fopen(path, "w");
if (!f)
+ {
+ free(path);
return 1;
+ }

fprintf(f, "# Automatically generated by rpc-pipefs-generator\n\n[Unit]\n");
fprintf(f, "Requires=%s\n", pipefs_unit);
fprintf(f, "After=%s\n", pipefs_unit);
fclose(f);
+ free(path);

return 0;
}
--
2.14.3



2018-06-19 16:56:11

by Steve Dickson

[permalink] [raw]
Subject: Re: [PATCH] nfs-utils: Fix a minor memory leak in generate_mount_unit and generate_target.



On 06/14/2018 12:28 PM, Kenneth Dsouza wrote:
> Free allocated memory for path before return.
> Signed-off-by: Kenneth D'souza <[email protected]>
Committed....

steved.
> ---
> systemd/rpc-pipefs-generator.c | 8 ++++++++
> 1 file changed, 8 insertions(+)
>
> diff --git a/systemd/rpc-pipefs-generator.c b/systemd/rpc-pipefs-generator.c
> index 6e1d69c..0b5da11 100644
> --- a/systemd/rpc-pipefs-generator.c
> +++ b/systemd/rpc-pipefs-generator.c
> @@ -35,7 +35,10 @@ static int generate_mount_unit(const char *pipefs_path, const char *pipefs_unit,
> sprintf(path, "%s/%s", dirname, pipefs_unit);
> f = fopen(path, "w");
> if (!f)
> + {
> + free(path);
> return 1;
> + }
>
> fprintf(f, "# Automatically generated by rpc-pipefs-generator\n\n[Unit]\n");
> fprintf(f, "Description=RPC Pipe File System\n");
> @@ -48,6 +51,7 @@ static int generate_mount_unit(const char *pipefs_path, const char *pipefs_unit,
> fprintf(f, "Type=rpc_pipefs\n");
>
> fclose(f);
> + free(path);
> return 0;
> }
>
> @@ -76,12 +80,16 @@ int generate_target(char *pipefs_path, const char *dirname)
> strcat(path, filebase);
> f = fopen(path, "w");
> if (!f)
> + {
> + free(path);
> return 1;
> + }
>
> fprintf(f, "# Automatically generated by rpc-pipefs-generator\n\n[Unit]\n");
> fprintf(f, "Requires=%s\n", pipefs_unit);
> fprintf(f, "After=%s\n", pipefs_unit);
> fclose(f);
> + free(path);
>
> return 0;
> }
>