34 lines
1.1 KiB
Diff
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
|