Signed-off-by: Volker Lendecke <vl@samba.org>
Reviewed-by: Andreas Schneider <asn@samba.org>
rc = getpwuid_r(getuid(), &pwd, buf, len, &pwdbuf);
while (rc == ERANGE) {
size_t newlen = 2 * len;
+ char *tmp = NULL;
if (newlen < len) {
/* Overflow */
goto done;
}
len = newlen;
- buf = talloc_realloc_size(mem_ctx, buf, len);
- if (buf == NULL) {
+ tmp = talloc_realloc_size(mem_ctx, buf, len);
+ if (tmp == NULL) {
goto done;
}
+ buf = tmp;
rc = getpwuid_r(getuid(), &pwd, buf, len, &pwdbuf);
}
if (rc != 0 || pwdbuf == NULL ) {