From: Avnish Chouhan Date: Thu, 20 Nov 2025 08:11:41 +0000 (+0530) Subject: normal/cmdline: Add grub_calloc() failure check and fix hist_lines state loss X-Git-Url: http://git.ipfire.org/cgi-bin/gitweb.cgi?a=commitdiff_plain;h=cb811bdf053d5e976e50673bd4685a64f63f844c;p=thirdparty%2Fgrub.git normal/cmdline: Add grub_calloc() failure check and fix hist_lines state loss If grub_calloc() fails hist_lines becomes NULL. It means we loose the reference to the previously allocated hist_lines and leak memory. With this change on failure hist_lines still points to the old memory. So, no leak, no state corruption. Signed-off-by: Avnish Chouhan Reviewed-by: Daniel Kiper --- diff --git a/grub-core/normal/cmdline.c b/grub-core/normal/cmdline.c index 9c6d9ade9..0875250be 100644 --- a/grub-core/normal/cmdline.c +++ b/grub-core/normal/cmdline.c @@ -42,7 +42,14 @@ grub_err_t grub_set_history (int newsize) { grub_uint32_t **old_hist_lines = hist_lines; + hist_lines = grub_calloc (newsize, sizeof (grub_uint32_t *)); + if (hist_lines == NULL) + { + /* We need to restore hist_lines to avoid memory leak and state loss. */ + hist_lines = old_hist_lines; + return grub_errno; + } /* Copy the old lines into the new buffer. */ if (old_hist_lines)