# [PATCH] inet_ntop.c: Work around GCC 4.6's detection of uninitialized variables

3 messages from 2011-10-18 to 2011-10-18. Participants: Sebastian Schuberth, Junio C Hamano.
Thread: https://gitlist.dev/t/28714

## Sebastian Schuberth, 2011-10-18 16:25

Subject: [PATCH] inet_ntop.c: Work around GCC 4.6's detection of uninitialized variables
Message-ID: <4E9DA88E.40500@gmail.com>
URL: https://gitlist.dev/e/4E9DA88E.40500%40gmail.com

```
GCC 4.6 claims that

    error: 'best.len' may be used uninitialized in this function

so silence that warning which is treated as an error by also initializing
the "len" members of the struct.

Signed-off-by: Sebastian Schuberth <sschuberth@gmail.com>
---
 compat/inet_ntop.c |    2 ++
 1 files changed, 2 insertions(+), 0 deletions(-)

diff --git a/compat/inet_ntop.c b/compat/inet_ntop.c
index ea249c6..60b5a1d 100644
--- a/compat/inet_ntop.c
+++ b/compat/inet_ntop.c
@@ -98,7 +98,9 @@ inet_ntop6(const u_char *src, char *dst, size_t size)
 	for (i = 0; i < NS_IN6ADDRSZ; i++)
 		words[i / 2] |= (src[i] << ((1 - (i % 2)) << 3));
 	best.base = -1;
+	best.len = 0;
 	cur.base = -1;
+	cur.len = 0;
 	for (i = 0; i < (NS_IN6ADDRSZ / NS_INT16SZ); i++) {
 		if (words[i] == 0) {
 			if (cur.base == -1)
-- 
1.7.7.msysgit.1

```

## Junio C Hamano, 2011-10-18 17:32

Subject: Re: [PATCH] inet_ntop.c: Work around GCC 4.6's detection of uninitialized variables
Message-ID: <7vehyagq82.fsf@alter.siamese.dyndns.org>
URL: https://gitlist.dev/e/7vehyagq82.fsf%40alter.siamese.dyndns.org
In-Reply-To: <4E9DA88E.40500@gmail.com>

```
Sebastian Schuberth <sschuberth@gmail.com> writes:

> GCC 4.6 claims that
>
>     error: 'best.len' may be used uninitialized in this function
>
> so silence that warning which is treated as an error by also initializing
> the "len" members of the struct.
>
> Signed-off-by: Sebastian Schuberth <sschuberth@gmail.com>
> ---
>  compat/inet_ntop.c |    2 ++
>  1 files changed, 2 insertions(+), 0 deletions(-)
>
> diff --git a/compat/inet_ntop.c b/compat/inet_ntop.c
> index ea249c6..60b5a1d 100644
> --- a/compat/inet_ntop.c
> +++ b/compat/inet_ntop.c
> @@ -98,7 +98,9 @@ inet_ntop6(const u_char *src, char *dst, size_t size)
>  	for (i = 0; i < NS_IN6ADDRSZ; i++)
>  		words[i / 2] |= (src[i] << ((1 - (i % 2)) << 3));
>  	best.base = -1;
> +	best.len = 0;
>  	cur.base = -1;
> +	cur.len = 0;

It may be just the "taste" thing, but I wonder if

	best.base = -1;
        best.len = 0;
        cur = best;

might be easier on the eyes.

Will queue as-is anyway. Thanks.

>  	for (i = 0; i < (NS_IN6ADDRSZ / NS_INT16SZ); i++) {
>  		if (words[i] == 0) {
>  			if (cur.base == -1)

```

## Sebastian Schuberth, 2011-10-18 18:12

Subject: Re: [PATCH] inet_ntop.c: Work around GCC 4.6's detection of uninitialized variables
Message-ID: <4E9DC198.9040108@gmail.com>
URL: https://gitlist.dev/e/4E9DC198.9040108%40gmail.com
In-Reply-To: <7vehyagq82.fsf@alter.siamese.dyndns.org>

```
GCC 4.6 claims that

    error: 'best.len' may be used uninitialized in this function

so silence that warning which is treated as an error by also initializing
the "len" members of the struct.

Signed-off-by: Sebastian Schuberth <sschuberth@gmail.com>
---
 compat/inet_ntop.c |    3 ++-
 1 files changed, 2 insertions(+), 1 deletions(-)

diff --git a/compat/inet_ntop.c b/compat/inet_ntop.c
index ea249c6..9e9f6fb 100644
--- a/compat/inet_ntop.c
+++ b/compat/inet_ntop.c
@@ -98,7 +98,8 @@ inet_ntop6(const u_char *src, char *dst, size_t size)
 	for (i = 0; i < NS_IN6ADDRSZ; i++)
 		words[i / 2] |= (src[i] << ((1 - (i % 2)) << 3));
 	best.base = -1;
-	cur.base = -1;
+	best.len = 0;
+	cur = best;
 	for (i = 0; i < (NS_IN6ADDRSZ / NS_INT16SZ); i++) {
 		if (words[i] == 0) {
 			if (cur.base == -1)
-- 
1.7.7.msysgit.1

```
