Skip to content

Instantly share code, notes, and snippets.

@andreoss
Created March 16, 2023 01:12
Show Gist options
  • Save andreoss/d90490ce12a5ed8f6aefae83501777ca to your computer and use it in GitHub Desktop.
Save andreoss/d90490ce12a5ed8f6aefae83501777ca to your computer and use it in GitHub Desktop.
gcc 12 use-after-free fix
diff --git a/tools/lib/subcmd/subcmd-util.h b/tools/lib/subcmd/subcmd-util.h
index 794a375dad36..7009fc176636 100644
--- a/tools/lib/subcmd/subcmd-util.h
+++ b/tools/lib/subcmd/subcmd-util.h
@@ -49,13 +49,12 @@ static NORETURN inline void die(const char *err, ...)
static inline void *xrealloc(void *ptr, size_t size)
{
- void *ret = realloc(ptr, size);
- if (!ret && !size)
- ret = realloc(ptr, 1);
+ void *ret;
+ if (!size)
+ size = 1;
+ ret = realloc(ptr, size);
if (!ret) {
ret = realloc(ptr, size);
- if (!ret && !size)
- ret = realloc(ptr, 1);
if (!ret)
die("Out of memory, realloc failed");
}
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment