Closed
Bug 20558
Opened 25 years ago
Closed 25 years ago
pr_Mac_LoadIndexedFragment calls pr_UnlockedFindLibrary() will null fragmentName
Categories
(NSPR :: NSPR, defect, P3)
Tracking
(Not tracked)
RESOLVED
FIXED
People
(Reporter: sfraser_bugs, Assigned: sdagley)
Details
pr_UnlockedFindLibrary() calls pr_UnlockedFindLibrary() without first getting the
fragment name from the DLL. This results in calls to strchr on 0, which is bad.
| Reporter | ||
Updated•25 years ago
|
Version: 3.13.1 → 3.1.1
| Reporter | ||
Comment 1•25 years ago
|
||
Changing this so I get mail.
| Reporter | ||
Comment 2•25 years ago
|
||
Patches follow:
Index: macdll.c
===================================================================
RCS file: /cvsroot/mozilla/nsprpub/pr/src/md/mac/macdll.c,v
retrieving revision 3.4
diff -r3.4 macdll.c
345c345
< static OSErr GetNamedFragmentOffsets(const FSSpec *fileSpec, const char*
fragmentName,
---
> OSErr GetNamedFragmentOffsets(const FSSpec *fileSpec, const char* fragmentName,
413c413
< static OSErr GetIndexedFragmentOffsets(const FSSpec *fileSpec, UInt32
fragmentIndex,
---
> OSErr GetIndexedFragmentOffsets(const FSSpec *fileSpec, UInt32 fragmentIndex,
Index: macdll.h
===================================================================
RCS file: /cvsroot/mozilla/nsprpub/pr/src/md/mac/macdll.h,v
retrieving revision 1.1
diff -r1.1 macdll.h
23a24,28
> OSErr GetNamedFragmentOffsets(const FSSpec *fileSpec, const char* fragmentName,
> UInt32 *outOffset, UInt32 *outLength);
> OSErr GetIndexedFragmentOffsets(const FSSpec *fileSpec, UInt32 fragmentIndex,
> UInt32 *outOffset, UInt32 *outLength, char **outFragmentName);
>
Index: prlink.c
===================================================================
RCS file: /cvsroot/mozilla/nsprpub/pr/src/linking/prlink.c,v
retrieving revision 3.29
diff -r3.29 prlink.c
827c827
<
---
>
887a888
> UInt32 fragOffset, fragLength;
897,904d897
< result = pr_UnlockedFindLibrary(fragmentName);
< if (result != NULL) goto unlock;
<
< newLib = PR_NEWZAP(PRLibrary);
< if (newLib == NULL) goto unlock;
< newLib->staticTable = NULL;
<
<
914a908,918
> err = GetIndexedFragmentOffsets(&resolvedSpec, fragIndex, &fragOffset, &fragLength, &fragmentName);
> if (err != noErr) goto unlock;
>
> result = pr_UnlockedFindLibrary(fragmentName);
> free(fragmentName);
> fragmentName = NULL;
> if (result != NULL) goto unlock;
>
> newLib = PR_NEWZAP(PRLibrary);
> if (newLib == NULL) goto unlock;
> newLib->staticTable = NULL;
Updated•25 years ago
|
Version: 3.1.1 → 3.5
| Assignee | ||
Updated•25 years ago
|
Status: NEW → RESOLVED
Closed: 25 years ago
Resolution: --- → FIXED
| Assignee | ||
Comment 3•25 years ago
|
||
fix checked in
You need to log in
before you can comment on or make changes to this bug.
Description
•