|
@@ -472,23 +472,30 @@ inline int find_type_by_name(const char *name, const char *type)
|
|
|
+ strlen(type)
|
|
|
+ numstrlen
|
|
|
+ 6);
|
|
|
- if (filename == NULL)
|
|
|
+ if (filename == NULL) {
|
|
|
+ closedir(dp);
|
|
|
return -ENOMEM;
|
|
|
+ }
|
|
|
sprintf(filename, "%s%s%d/name",
|
|
|
iio_dir,
|
|
|
type,
|
|
|
number);
|
|
|
nameFile = fopen(filename, "r");
|
|
|
- if (!nameFile)
|
|
|
+ if (!nameFile) {
|
|
|
+ free(filename);
|
|
|
continue;
|
|
|
+ }
|
|
|
free(filename);
|
|
|
fscanf(nameFile, "%s", thisname);
|
|
|
- if (strcmp(name, thisname) == 0)
|
|
|
- return number;
|
|
|
fclose(nameFile);
|
|
|
+ if (strcmp(name, thisname) == 0) {
|
|
|
+ closedir(dp);
|
|
|
+ return number;
|
|
|
+ }
|
|
|
}
|
|
|
}
|
|
|
}
|
|
|
+ closedir(dp);
|
|
|
return -ENODEV;
|
|
|
}
|
|
|
|