src/solaris/back/linker_md.c

Print this page
rev 6641 : [mq]: PrivateTransportTest

*** 58,83 **** const char* pname, const char* fname) { // Based on os_solaris.cpp char *path_sep = PATH_SEPARATOR; char *pathname = (char *)pname; while (strlen(pathname) > 0) { char *p = strchr(pathname, *path_sep); if (p == NULL) { p = pathname + strlen(pathname); } /* check for NULL path */ if (p == pathname) { continue; } ! (void)snprintf(buffer, buflen, "%.*s/lib%s." LIB_SUFFIX, (p - pathname), pathname, fname); if (access(buffer, F_OK) == 0) { break; } pathname = p + 1; *buffer = '\0'; } } /* --- 58,88 ---- const char* pname, const char* fname) { // Based on os_solaris.cpp char *path_sep = PATH_SEPARATOR; char *pathname = (char *)pname; + *buffer = '\0'; while (strlen(pathname) > 0) { char *p = strchr(pathname, *path_sep); if (p == NULL) { p = pathname + strlen(pathname); } /* check for NULL path */ if (p == pathname) { continue; } ! (void)snprintf(buffer, buflen, "%.*s/lib%s." LIB_SUFFIX, (int)(p - pathname), pathname, fname); if (access(buffer, F_OK) == 0) { break; } + if (*p == '\0') { + pathname = p; + } else { pathname = p + 1; + } *buffer = '\0'; } } /*