binutils/SOURCES/binutils-CVE-2018-12699-part6-PR28862.patch

34 lines
1.1 KiB
Diff

# Commit 481153777e278b71e694fd2db6b897f7a9e3dcb8 fixing PR 28862
#
# From: Alan Modra <amodra@gmail.com>
#
# I have no info on the format of a "SUNPRO C++ Namespace" stab, so am
# relying on the previous code being correct in parsing these stabs.
# Just don't allow NULs anywhere in the stab.
#
# PR 28862
# * stabs.c (parse_stab_string): Don't overrun buffer when parsing
# 'Y' stab.
--- binutils.orig/binutils/stabs.c 2024-11-06 17:39:57.460250962 +0000
+++ binutils-2.30/binutils/stabs.c 2024-11-06 17:41:32.293848603 +0000
@@ -1138,15 +1138,13 @@ parse_stab_string (void *dhandle, struct
case 'Y':
/* SUNPro C++ Namespace =Yn0. */
/* Skip the namespace mapping, as it is not used now. */
- if (*(++p) == 'n' && *(++p) == '0')
+ if (*p++ != 0 && *p++ == 'n' && *p++ == '0')
{
/* =Yn0name; */
- while (*p != ';')
+ while (*p && *p != ';')
++p;
- ++p;
- /* There is a potential resource leak here, but it is not important. */
- /* coverity[leaked_storage: FALSE] */
- return TRUE;
+ if (*p)
+ return TRUE;
}
/* TODO SUNPro C++ support:
Support default arguments after F,P parameters