Author: jmorlan
Date: Fri Aug 1 16:48:54 2008
New Revision: 35020
URL:
http://svn.reactos.org/svn/reactos?rev=35020&view=rev
Log:
In rsym, allow a stabs entry to be longer than 256 characters, so that ROS may be compiled
with -feliminate-unused-debug-symbols which reduces the needed disk space a lot.
Modified:
trunk/reactos/tools/rsym.c
Modified: trunk/reactos/tools/rsym.c
URL:
http://svn.reactos.org/svn/reactos/trunk/reactos/tools/rsym.c?rev=35020&…
==============================================================================
--- trunk/reactos/tools/rsym.c [iso-8859-1] (original)
+++ trunk/reactos/tools/rsym.c [iso-8859-1] Fri Aug 1 16:48:54 2008
@@ -143,6 +143,7 @@
ULONG_PTR Address, LastFunctionAddress;
int First = 1;
char *Name;
+ ULONG NameLen;
char FuncName[256];
PROSSYM_ENTRY Current;
@@ -220,18 +221,16 @@
Current->Address = Address;
Current->FileOffset = Current[-1].FileOffset;
}
- if (sizeof(FuncName) <= strlen((char *) StabStringsBase +
StabEntry[i].n_strx))
+ Name = (char *) StabStringsBase + StabEntry[i].n_strx;
+ NameLen = strcspn(Name, ":");
+ if (sizeof(FuncName) <= NameLen)
{
free(*SymbolsBase);
fprintf(stderr, "Function name too long\n");
return 1;
}
- strcpy(FuncName, (char *) StabStringsBase + StabEntry[i].n_strx);
- Name = strchr(FuncName, ':');
- if (NULL != Name)
- {
- *Name = '\0';
- }
+ memcpy(FuncName, Name, NameLen);
+ FuncName[NameLen] = '\0';
Current->FunctionOffset = FindOrAddString(FuncName,
StringsLength,
StringsBase);