{
enum Perms perms;
- if (get_perms(line, &perms) == 0 && (perms & PERM_EXEC)) {
+ if (get_perms(line, &perms) == 0) {
char *p = strstr(line, " /");
- if (p > 0)
- return p+1;
+ if (p == NULL)
+ return NULL;
+
+ char *path = p + 1;
+
+ if ((perms & PERM_EXEC) ||
+ is_dotnet_file(path))
+ return path;
}
return NULL;
}
rpmdbMatchIterator mi = rpmtsInitIterator(ts, RPMDBI_INSTFILENAMES, filename, 0);
if (mi == NULL) {
- _E("Not found RPM package for %s\n", filename);
+ _W("Not found RPM package for %s\n", filename);
return NULL;
}
char *file_path = (char *)iterator->data;
char *build_id = NULL;
- if (get_build_id(file_path, &build_id) <= 0 || build_id == NULL)
+ if (is_dotnet_file(file_path))
+ build_id = strdup("");
+ else if (get_build_id(file_path, &build_id) <= 0 || build_id == NULL)
continue;
char *rpm_info = get_rpm_info(ts, file_path);
ri->app_name = get_app_name_from_path(file_path);
if (ri->app_name == NULL) {
free(ri);
+ free(build_id);
continue;
}
ri->build_id = build_id;