1- diff -r 3e629dc19168 dynload/dynload_syms_mach-o.c
2- --- a/dynload/dynload_syms_mach-o.c Thu Mar 19 22:24:28 2015 +0100
3- +++ b/dynload/dynload_syms_mach-o.c Sat Mar 21 11:08:07 2015 +0000
1+ diff -r bbefb8b8e74c dynload/dynload_syms_mach-o.c
2+ --- a/dynload/dynload_syms_mach-o.c Thu Nov 24 23:47:31 2016 +0000
3+ +++ b/dynload/dynload_syms_mach-o.c Sun Dec 25 20:36:56 2016 +0100
44@@ -29,6 +29,7 @@
55 dynamic symbol resolver for Mach-O
66
@@ -167,7 +167,7 @@ diff -r 3e629dc19168 dynload/dynload_syms_mach-o.c
167167
168168 DLSyms* dlSymsInit(const char* libPath)
169169 {
170- @@ -71,27 +201,59 @@
170+ @@ -71,27 +201,61 @@
171171 for (iImage = 0, nImages = _dyld_image_count(); iImage < nImages; iImage++)
172172 {
173173 const char* name = _dyld_get_image_name(iImage);
@@ -197,6 +197,8 @@ diff -r 3e629dc19168 dynload/dynload_syms_mach-o.c
197197 {
198198- if (cmd->cmd == LC_SYMTAB)
199199- {
200+ + if (!cmd) continue;
201+ +
200202+ if (cmd->cmd == LC_DYLD_INFO_ONLY || cmd->cmd == LC_DYLD_INFO) {
201203+ const struct dyld_info_command* dcmd = (const struct dyld_info_command*)cmd;
202204+ const unsigned char* trie = (pBase + dcmd->export_off);
@@ -233,15 +235,15 @@ diff -r 3e629dc19168 dynload/dynload_syms_mach-o.c
233235 pSyms->symbolCount = scmd->nsyms;
234236 pSyms->pStringTable = pBase + scmd->stroff;
235237 pSyms->pSymbolTable = (struct NLIST_TYPE*)(pBase + scmd->symoff);
236- @@ -101,7 +263 ,6 @@
238+ @@ -101,7 +265 ,6 @@
237239 cmd = (const struct load_command*)(((char*)cmd) + cmd->cmdsize);
238240 }
239241 }
240242- break;
241243 }
242244 }
243245 return NULL;
244- @@ -113,6 +274 ,18 @@
246+ @@ -113,6 +276 ,18 @@
245247 if (!pSyms)
246248 return;
247249
@@ -260,7 +262,7 @@ diff -r 3e629dc19168 dynload/dynload_syms_mach-o.c
260262 dlFreeMem(pSyms);
261263 }
262264
263- @@ -133,6 +306 ,11 @@
265+ @@ -133,6 +308 ,11 @@
264266 if (nl->n_un.n_strx <= 1)
265267 return NULL; // would be empty string anyway
266268
@@ -272,7 +274,7 @@ diff -r 3e629dc19168 dynload/dynload_syms_mach-o.c
272274 //TODO skip more symbols based on nl->n_desc and nl->n_type ?
273275 return nl;
274276 }
275- @@ -140,6 +318 ,12 @@
277+ @@ -140,6 +320 ,12 @@
276278
277279 const char* dlSymsName(DLSyms* pSyms, int index)
278280 {
@@ -285,7 +287,7 @@ diff -r 3e629dc19168 dynload/dynload_syms_mach-o.c
285287 const struct NLIST_TYPE* nl = get_nlist(pSyms, index);
286288 if (!nl)
287289 return NULL;
288- @@ -150,6 +334 ,12 @@
290+ @@ -150,6 +336 ,12 @@
289291
290292 void* dlSymsValue(DLSyms* pSyms, int index)
291293 {
@@ -298,9 +300,9 @@ diff -r 3e629dc19168 dynload/dynload_syms_mach-o.c
298300 const struct NLIST_TYPE* nl = get_nlist(pSyms, index);
299301 if (!nl)
300302 return NULL;
301- diff -r 3e629dc19168 dynload/dynload_unix.c
302- --- a/dynload/dynload_unix.c Thu Mar 19 22:24:28 2015 +0100
303- +++ b/dynload/dynload_unix.c Sat Mar 21 11:08:07 2015 +0000
303+ diff -r bbefb8b8e74c dynload/dynload_unix.c
304+ --- a/dynload/dynload_unix.c Thu Nov 24 23:47:31 2016 +0000
305+ +++ b/dynload/dynload_unix.c Sun Dec 25 20:36:56 2016 +0100
304306@@ -41,7 +41,7 @@
305307
306308 DLLib* dlLoadLibrary(const char* libPath)
@@ -310,9 +312,9 @@ diff -r 3e629dc19168 dynload/dynload_unix.c
310312 }
311313
312314
313- diff -r 3e629dc19168 dynload/dynload_windows.c
314- --- a/dynload/dynload_windows.c Thu Mar 19 22:24:28 2015 +0100
315- +++ b/dynload/dynload_windows.c Sat Mar 21 11:08:07 2015 +0000
315+ diff -r bbefb8b8e74c dynload/dynload_windows.c
316+ --- a/dynload/dynload_windows.c Thu Nov 24 23:47:31 2016 +0000
317+ +++ b/dynload/dynload_windows.c Sun Dec 25 20:36:56 2016 +0100
316318@@ -41,7 +41,9 @@
317319 DLLib* dlLoadLibrary(const char* libPath)
318320 {
0 commit comments