From 0fcaa3a2f50da3e53ec4d5b5f87bb0b04f08c084 Mon Sep 17 00:00:00 2001 From: "Markus F.X.J. Oberhumer" Date: Thu, 22 Mar 2007 07:30:16 +0100 Subject: [PATCH] Work around broken scanf() implementations. --- src/linker.cpp | 9 +++++++-- 1 file changed, 7 insertions(+), 2 deletions(-) diff --git a/src/linker.cpp b/src/linker.cpp index 435b4a31..3b24eedb 100644 --- a/src/linker.cpp +++ b/src/linker.cpp @@ -228,15 +228,20 @@ void ElfLinker::preprocessSymbols(char *start, char *end) assert(nextl != NULL); if (sscanf(start, "%x g *ABS* %x %1023s", - &value, &offset, symbol) == 3) + &value, &offset, symbol) == 3) { char *s = strstr(start, symbol); s[strlen(symbol)] = 0; addSymbol(s, "*ABS*", value); assert(offset == 0); } +#if 0 else if (sscanf(start, "%x%*8c %1023s %*x %1023s", - &offset, section, symbol) == 3) +#else + // work around broken scanf implementations + else if (sscanf(start, "%x%*c%*c%*c%*c%*c%*c%*c%*c %1023s %*x %1023s", +#endif + &offset, section, symbol) == 3) { char *s = strstr(start, symbol); s[strlen(symbol)] = 0;