dladdr() on Win32 should't leave dli_fname == NULL

This commit is contained in:
Nicolas Williams
2014-02-04 15:37:45 -06:00
parent 2820cd7716
commit 2fd4c58338

View File

@@ -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;
} }