# Commit 481153777e278b71e694fd2db6b897f7a9e3dcb8 fixing PR 28862 # # From: Alan Modra # # 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