Avoid duplicate path in library paths

This commit is contained in:
Nobuyoshi Nakada 2023-10-20 18:09:47 +09:00
parent 55d954721e
commit 6d1ed3def8
No known key found for this signature in database
GPG Key ID: 3582D74E1FEE4465

View File

@ -25,12 +25,24 @@ insert_env_path(const char *envname, const char *paths, size_t size, int prepend
char *e = malloc(size+n+1);
size_t pos = 0;
if (prepend) {
if (size == n || (size < n && env[size] == PATH_SEP)) {
if (strncmp(paths, env, size) == 0) {
free(e);
return;
}
}
memcpy(e, paths, pos = size-1);
e[pos++] = PATH_SEP;
}
memcpy(e+pos, env, n);
pos += n;
if (!prepend) {
if (size == n || (size < n && env[n-size-1] == PATH_SEP)) {
if (strncmp(paths, &env[n-size], size) == 0) {
free(e);
return;
}
}
e[pos++] = PATH_SEP;
memcpy(e+pos, paths, size-1);
pos += size-1;