You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
34 lines
1.1 KiB
34 lines
1.1 KiB
3 months ago
|
# 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
|