2018-06-20 16:21:35

by Kenneth Dsouza

[permalink] [raw]
Subject: [PATCH] nfs-utils: Fix minor memory leaks before return.

Signed-off-by: Kenneth D'souza <[email protected]>
Signed-off-by: Frank Sorenson <[email protected]>
---
support/junction/path.c | 4 +++-
support/nfsidmap/nfsidmap_common.c | 4 +++-
2 files changed, 6 insertions(+), 2 deletions(-)

diff --git a/support/junction/path.c b/support/junction/path.c
index 68a1d13..e74e4c4 100644
--- a/support/junction/path.c
+++ b/support/junction/path.c
@@ -326,8 +326,10 @@ nsdb_posix_to_path_array(const char *pathname, char ***path_array)
break;
next = strchrnul(component, '/');
length = (size_t)(next - component);
- if (length > 255)
+ if (length > 255) {
+ nsdb_free_string_array(result);
return FEDFS_ERR_SVRFAULT;
+ }

result[i] = strndup(component, length);
if (result[i] == NULL) {
diff --git a/support/nfsidmap/nfsidmap_common.c b/support/nfsidmap/nfsidmap_common.c
index 5242c7e..f89b82e 100644
--- a/support/nfsidmap/nfsidmap_common.c
+++ b/support/nfsidmap/nfsidmap_common.c
@@ -57,8 +57,10 @@ struct conf_list *get_local_realms(void)
return NULL;

node->field = calloc(1, NFS4_MAX_DOMAIN_LEN);
- if (node->field == NULL)
+ if (node->field == NULL) {
+ free(node);
return NULL;
+ }

nfs4_get_default_domain(NULL, node->field, NFS4_MAX_DOMAIN_LEN);
toupper_str(node->field);
--
2.14.3



2018-06-25 15:37:59

by Steve Dickson

[permalink] [raw]
Subject: Re: [PATCH] nfs-utils: Fix minor memory leaks before return.



On 06/20/2018 12:21 PM, Kenneth Dsouza wrote:
> Signed-off-by: Kenneth D'souza <[email protected]>
> Signed-off-by: Frank Sorenson <[email protected]>
> ---
> support/junction/path.c | 4 +++-
> support/nfsidmap/nfsidmap_common.c | 4 +++-
> 2 files changed, 6 insertions(+), 2 deletions(-)
Committed...

steved.
>
> diff --git a/support/junction/path.c b/support/junction/path.c
> index 68a1d13..e74e4c4 100644
> --- a/support/junction/path.c
> +++ b/support/junction/path.c
> @@ -326,8 +326,10 @@ nsdb_posix_to_path_array(const char *pathname, char ***path_array)
> break;
> next = strchrnul(component, '/');
> length = (size_t)(next - component);
> - if (length > 255)
> + if (length > 255) {
> + nsdb_free_string_array(result);
> return FEDFS_ERR_SVRFAULT;
> + }
>
> result[i] = strndup(component, length);
> if (result[i] == NULL) {
> diff --git a/support/nfsidmap/nfsidmap_common.c b/support/nfsidmap/nfsidmap_common.c
> index 5242c7e..f89b82e 100644
> --- a/support/nfsidmap/nfsidmap_common.c
> +++ b/support/nfsidmap/nfsidmap_common.c
> @@ -57,8 +57,10 @@ struct conf_list *get_local_realms(void)
> return NULL;
>
> node->field = calloc(1, NFS4_MAX_DOMAIN_LEN);
> - if (node->field == NULL)
> + if (node->field == NULL) {
> + free(node);
> return NULL;
> + }
>
> nfs4_get_default_domain(NULL, node->field, NFS4_MAX_DOMAIN_LEN);
> toupper_str(node->field);
>