dladdr() on Win32 should't leave dli_fname == NULL
This commit is contained in:
@@ -170,6 +170,7 @@ dladdr(void *addr, Dl_info *dli)
|
|||||||
DWORD nsize;
|
DWORD nsize;
|
||||||
|
|
||||||
memset(dli, 0, sizeof(*dli));
|
memset(dli, 0, sizeof(*dli));
|
||||||
|
dli->dli_fname = dli->_dli_buf;
|
||||||
|
|
||||||
if (!GetModuleHandleEx(GET_MODULE_HANDLE_EX_FLAG_FROM_ADDRESS |
|
if (!GetModuleHandleEx(GET_MODULE_HANDLE_EX_FLAG_FROM_ADDRESS |
|
||||||
GET_MODULE_HANDLE_EX_FLAG_UNCHANGED_REFCOUNT,
|
GET_MODULE_HANDLE_EX_FLAG_UNCHANGED_REFCOUNT,
|
||||||
@@ -180,7 +181,5 @@ dladdr(void *addr, Dl_info *dli)
|
|||||||
dli->_dli_buf[sizeof(dli->_dli_buf) - 1] = '\0';
|
dli->_dli_buf[sizeof(dli->_dli_buf) - 1] = '\0';
|
||||||
if (nsize >= sizeof(dli->_dli_buf))
|
if (nsize >= sizeof(dli->_dli_buf))
|
||||||
return 0; /* truncated? can't be... */
|
return 0; /* truncated? can't be... */
|
||||||
|
|
||||||
dli->dli_fname = dli->_dli_buf;
|
|
||||||
return 1;
|
return 1;
|
||||||
}
|
}
|
||||||
|
Reference in New Issue
Block a user