diff mbox

[02/12] Return the correct size buffer in set_value()

Message ID 1404105243-5071-3-git-send-email-bmarzins@redhat.com (mailing list archive)
State Accepted, archived
Delegated to: christophe varoqui
Headers show

Commit Message

Benjamin Marzinski June 30, 2014, 5:13 a.m. UTC
When multipath was mallocing the buffer in set_value, it was using
sizeof(char *), instead of sizeof(char), so it was allocating a buffer
big enough for an array of pointers instead of characters.

Signed-off-by: Benjamin Marzinski <bmarzins@redhat.com>
---
 libmultipath/parser.c | 6 +++---
 1 file changed, 3 insertions(+), 3 deletions(-)

Comments

Christophe Varoqui July 1, 2014, 6:47 p.m. UTC | #1
Applied.
Thanks.


On Mon, Jun 30, 2014 at 7:13 AM, Benjamin Marzinski <bmarzins@redhat.com>
wrote:

> When multipath was mallocing the buffer in set_value, it was using
> sizeof(char *), instead of sizeof(char), so it was allocating a buffer
> big enough for an array of pointers instead of characters.
>
> Signed-off-by: Benjamin Marzinski <bmarzins@redhat.com>
> ---
>  libmultipath/parser.c | 6 +++---
>  1 file changed, 3 insertions(+), 3 deletions(-)
>
> diff --git a/libmultipath/parser.c b/libmultipath/parser.c
> index 526c45b..0d4c870 100644
> --- a/libmultipath/parser.c
> +++ b/libmultipath/parser.c
> @@ -408,11 +408,11 @@ set_value(vector strvec)
>                         len += strlen(str);
>                         if (!alloc)
>                                 alloc =
> -                                   (char *) MALLOC(sizeof (char *) *
> +                                   (char *) MALLOC(sizeof (char) *
>                                                     (len + 1));
>                         else {
>                                 alloc =
> -                                   REALLOC(alloc, sizeof (char *) * (len
> + 1));
> +                                   REALLOC(alloc, sizeof (char) * (len +
> 1));
>                                 tmp = VECTOR_SLOT(strvec, i-1);
>                                 if (alloc && *str != '"' && *tmp != '"')
>                                         strncat(alloc, " ", 1);
> @@ -422,7 +422,7 @@ set_value(vector strvec)
>                                 strncat(alloc, str, strlen(str));
>                 }
>         } else {
> -               alloc = MALLOC(sizeof (char *) * (size + 1));
> +               alloc = MALLOC(sizeof (char) * (size + 1));
>                 if (alloc)
>                         memcpy(alloc, str, size);
>         }
> --
> 1.8.3.1
>
>
--
dm-devel mailing list
dm-devel@redhat.com
https://www.redhat.com/mailman/listinfo/dm-devel
diff mbox

Patch

diff --git a/libmultipath/parser.c b/libmultipath/parser.c
index 526c45b..0d4c870 100644
--- a/libmultipath/parser.c
+++ b/libmultipath/parser.c
@@ -408,11 +408,11 @@  set_value(vector strvec)
 			len += strlen(str);
 			if (!alloc)
 				alloc =
-				    (char *) MALLOC(sizeof (char *) *
+				    (char *) MALLOC(sizeof (char) *
 						    (len + 1));
 			else {
 				alloc =
-				    REALLOC(alloc, sizeof (char *) * (len + 1));
+				    REALLOC(alloc, sizeof (char) * (len + 1));
 				tmp = VECTOR_SLOT(strvec, i-1);
 				if (alloc && *str != '"' && *tmp != '"')
 					strncat(alloc, " ", 1);
@@ -422,7 +422,7 @@  set_value(vector strvec)
 				strncat(alloc, str, strlen(str));
 		}
 	} else {
-		alloc = MALLOC(sizeof (char *) * (size + 1));
+		alloc = MALLOC(sizeof (char) * (size + 1));
 		if (alloc)
 			memcpy(alloc, str, size);
 	}