if (equal_pos) {
strncpy(var, arg, equal_pos - arg);
var[equal_pos - arg] = 0;
- strcpy(value, equal_pos + 1);
+ strlcpy(value, equal_pos + 1, sizeof(var));
} else {
strncpy(var, arg, sizeof(var) - 1);
var[sizeof(var) - 1] = '\0';
path = load_install_path(arg);
if (path) {
add_rpath(cc, path);
+ free(path);
}
}
if ((strlen(dirname) + 1 + sizeof(entry->d_name)) >= sizeof(fullname)) {
fprintf(stderr, "Dirname too long out of buffer space");
+ (void) closedir(dir);
return;
}