From e16aa40bed387c9575bc9c5d1b19ecca0e9cbda7 Mon Sep 17 00:00:00 2001 From: Chirimen-Jako Date: Wed, 31 Jul 2019 18:21:58 +0900 Subject: [PATCH] Suppress false positive warning "-Wmaybe-uninitialized" with GCC -O3 --- ccan/tal/path/path.c | 13 +++++++------ 1 file changed, 7 insertions(+), 6 deletions(-) diff --git a/ccan/tal/path/path.c b/ccan/tal/path/path.c index b5012066..75894240 100644 --- a/ccan/tal/path/path.c +++ b/ccan/tal/path/path.c @@ -302,7 +302,7 @@ fail_take_to: char *path_readlink(const tal_t *ctx, const char *linkname) { - ssize_t len, maxlen = 64; /* good first guess. */ + ssize_t maxlen = 64; /* good first guess. */ char *ret = NULL; if (unlikely(!linkname) && is_taken(linkname)) @@ -311,19 +311,20 @@ fail_take_to: ret = tal_arr(ctx, char, maxlen + 1); while (ret) { - len = readlink(linkname, ret, maxlen); + ssize_t len = readlink(linkname, ret, maxlen); + if (len < 0) goto fail; - if (len < maxlen) + + if (len < maxlen) { + ret[len] = '\0'; break; + } if (!tal_resize(&ret, maxlen *= 2 + 1)) goto fail; } - if (ret) - ret[len] = '\0'; - out: if (taken(linkname)) tal_free(linkname); -- 2.39.2