grub_zalloc() allocates memory for port. And if the allocation for port->name fails, the function returns NULL without freeing the previously allocated port memory. This results in a memory leak. To avoid this, we must free port before returning.
Signed-off-by: Avnish Chouhan <[email protected]> --- grub-core/term/ieee1275/serial.c | 6 +++++- 1 file changed, 5 insertions(+), 1 deletion(-) diff --git a/grub-core/term/ieee1275/serial.c b/grub-core/term/ieee1275/serial.c index ac2a8f8..b3a8a7c 100644 --- a/grub-core/term/ieee1275/serial.c +++ b/grub-core/term/ieee1275/serial.c @@ -236,7 +236,11 @@ add_port (struct ofserial_hash_ent *ent) + grub_strlen (ent->shortest)); port->elem = ent; if (!port->name) - return NULL; + { + grub_free (port); + return NULL; + } + ptr = grub_stpcpy (port->name, "ieee1275/"); grub_strcpy (ptr, ent->shortest); -- 2.47.1 _______________________________________________ Grub-devel mailing list [email protected] https://lists.gnu.org/mailman/listinfo/grub-devel
