summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorSergey Bugaev <bugaevc@gmail.com>2023-05-09 00:31:21 +0300
committerSamuel Thibault <samuel.thibault@ens-lyon.org>2023-05-10 02:38:53 +0200
commit202585da4315df1c68e6619d8097b06aaac98bbc (patch)
tree1f51f05ec2091bae8b32b1a988f5e6edb3fa0ab5
parentc9d6d69973ff6f11cc4a4428505b1e34ecde3b33 (diff)
boot: Fix use-after-realloc
Message-Id: <20230508213136.608575-27-bugaevc@gmail.com>
-rw-r--r--boot/boot.c7
1 files changed, 4 insertions, 3 deletions
diff --git a/boot/boot.c b/boot/boot.c
index b661f09c..144ca1c3 100644
--- a/boot/boot.c
+++ b/boot/boot.c
@@ -486,15 +486,16 @@ read_boot_script (char **buffer, size_t *length)
if (p == buf + len)
{
char *newbuf;
+ size_t newlen = len + 500;
- len += 500;
- newbuf = realloc (buf, len);
+ newbuf = realloc (buf, newlen);
if (!newbuf)
{
write (2, memmsg, sizeof (memmsg));
host_exit (1);
}
- p = newbuf + (p - buf);
+ p = newbuf + len;
+ len = newlen;
buf = newbuf;
}
}