hc
2024-12-19 9370bb92b2d16684ee45cf24e879c93c509162da
kernel/tools/iio/iio_utils.c
....@@ -262,6 +262,7 @@
262262 if (fscanf(sysfsfp, "%f", output) != 1)
263263 ret = errno ? -errno : -ENODATA;
264264
265
+ fclose(sysfsfp);
265266 break;
266267 }
267268 error_free_filename:
....@@ -342,9 +343,9 @@
342343 }
343344
344345 sysfsfp = fopen(filename, "r");
346
+ free(filename);
345347 if (!sysfsfp) {
346348 ret = -errno;
347
- free(filename);
348349 goto error_close_dir;
349350 }
350351
....@@ -354,7 +355,6 @@
354355 if (fclose(sysfsfp))
355356 perror("build_channel_array(): Failed to close file");
356357
357
- free(filename);
358358 goto error_close_dir;
359359 }
360360 if (ret == 1)
....@@ -362,11 +362,9 @@
362362
363363 if (fclose(sysfsfp)) {
364364 ret = -errno;
365
- free(filename);
366365 goto error_close_dir;
367366 }
368367
369
- free(filename);
370368 }
371369
372370 *ci_array = malloc(sizeof(**ci_array) * (*counter));
....@@ -392,9 +390,9 @@
392390 }
393391
394392 sysfsfp = fopen(filename, "r");
393
+ free(filename);
395394 if (!sysfsfp) {
396395 ret = -errno;
397
- free(filename);
398396 count--;
399397 goto error_cleanup_array;
400398 }
....@@ -402,20 +400,17 @@
402400 errno = 0;
403401 if (fscanf(sysfsfp, "%i", &current_enabled) != 1) {
404402 ret = errno ? -errno : -ENODATA;
405
- free(filename);
406403 count--;
407404 goto error_cleanup_array;
408405 }
409406
410407 if (fclose(sysfsfp)) {
411408 ret = -errno;
412
- free(filename);
413409 count--;
414410 goto error_cleanup_array;
415411 }
416412
417413 if (!current_enabled) {
418
- free(filename);
419414 count--;
420415 continue;
421416 }
....@@ -426,7 +421,6 @@
426421 strlen(ent->d_name) -
427422 strlen("_en"));
428423 if (!current->name) {
429
- free(filename);
430424 ret = -ENOMEM;
431425 count--;
432426 goto error_cleanup_array;
....@@ -436,7 +430,6 @@
436430 ret = iioutils_break_up_name(current->name,
437431 &current->generic_name);
438432 if (ret) {
439
- free(filename);
440433 free(current->name);
441434 count--;
442435 goto error_cleanup_array;
....@@ -447,17 +440,16 @@
447440 scan_el_dir,
448441 current->name);
449442 if (ret < 0) {
450
- free(filename);
451443 ret = -ENOMEM;
452444 goto error_cleanup_array;
453445 }
454446
455447 sysfsfp = fopen(filename, "r");
448
+ free(filename);
456449 if (!sysfsfp) {
457450 ret = -errno;
458
- fprintf(stderr, "failed to open %s\n",
459
- filename);
460
- free(filename);
451
+ fprintf(stderr, "failed to open %s/%s_index\n",
452
+ scan_el_dir, current->name);
461453 goto error_cleanup_array;
462454 }
463455
....@@ -467,17 +459,14 @@
467459 if (fclose(sysfsfp))
468460 perror("build_channel_array(): Failed to close file");
469461
470
- free(filename);
471462 goto error_cleanup_array;
472463 }
473464
474465 if (fclose(sysfsfp)) {
475466 ret = -errno;
476
- free(filename);
477467 goto error_cleanup_array;
478468 }
479469
480
- free(filename);
481470 /* Find the scale */
482471 ret = iioutils_get_param_float(&current->scale,
483472 "scale",