diff options
author | Christian Grothoff <christian@grothoff.org> | 2014-12-16 19:25:11 +0000 |
---|---|---|
committer | Christian Grothoff <christian@grothoff.org> | 2014-12-16 19:25:11 +0000 |
commit | e5b1301f208d9f1220b0d3de35e3283e1be177e0 (patch) | |
tree | ebcde6cb5734d9ae410705aac2080c7167f11a98 /src/sensordashboard | |
parent | dacfa714fa0a39482a86ff6f1791bb1b09fc35b4 (diff) | |
download | gnunet-e5b1301f208d9f1220b0d3de35e3283e1be177e0.tar.gz gnunet-e5b1301f208d9f1220b0d3de35e3283e1be177e0.zip |
-fix leak
Diffstat (limited to 'src/sensordashboard')
-rw-r--r-- | src/sensordashboard/gnunet-service-sensordashboard.c | 26 |
1 files changed, 18 insertions, 8 deletions
diff --git a/src/sensordashboard/gnunet-service-sensordashboard.c b/src/sensordashboard/gnunet-service-sensordashboard.c index cfccc9368..6506aa2dc 100644 --- a/src/sensordashboard/gnunet-service-sensordashboard.c +++ b/src/sensordashboard/gnunet-service-sensordashboard.c | |||
@@ -673,9 +673,14 @@ create_full_sensor_msg (char *sensorname) | |||
673 | sensor = GNUNET_CONTAINER_multihashmap_get (sensors, &key); | 673 | sensor = GNUNET_CONTAINER_multihashmap_get (sensors, &key); |
674 | if (NULL == sensor) | 674 | if (NULL == sensor) |
675 | return NULL; | 675 | return NULL; |
676 | GNUNET_asprintf (&sensor_path, "%s%s", sensor_dir, sensorname); | 676 | GNUNET_asprintf (&sensor_path, |
677 | "%s%s", | ||
678 | sensor_dir, | ||
679 | sensorname); | ||
677 | if (GNUNET_OK != | 680 | if (GNUNET_OK != |
678 | GNUNET_DISK_file_size (sensor_path, &sensorfile_size, GNUNET_NO, | 681 | GNUNET_DISK_file_size (sensor_path, |
682 | &sensorfile_size, | ||
683 | GNUNET_NO, | ||
679 | GNUNET_YES)) | 684 | GNUNET_YES)) |
680 | { | 685 | { |
681 | GNUNET_free (sensor_dir); | 686 | GNUNET_free (sensor_dir); |
@@ -683,19 +688,24 @@ create_full_sensor_msg (char *sensorname) | |||
683 | return NULL; | 688 | return NULL; |
684 | } | 689 | } |
685 | sensorname_size = strlen (sensorname) + 1; | 690 | sensorname_size = strlen (sensorname) + 1; |
691 | sensorscript_path = NULL; | ||
686 | sensorscript_size = 0; | 692 | sensorscript_size = 0; |
687 | sensorscriptname_size = 0; | 693 | sensorscriptname_size = 0; |
688 | /* Test if there is an associated script */ | 694 | /* Test if there is an associated script */ |
689 | if (NULL != sensor->ext_process) | 695 | if (NULL != sensor->ext_process) |
690 | { | 696 | { |
691 | GNUNET_asprintf (&sensorscript_path, "%s%s-files%s%s", sensor_dir, | 697 | GNUNET_asprintf (&sensorscript_path, |
692 | sensor->name, DIR_SEPARATOR_STR, sensor->ext_process); | 698 | "%s%s-files%s%s", |
699 | sensor_dir, | ||
700 | sensor->name, | ||
701 | DIR_SEPARATOR_STR, | ||
702 | sensor->ext_process); | ||
693 | if (GNUNET_OK == | 703 | if (GNUNET_OK == |
694 | GNUNET_DISK_file_size (sensorscript_path, &sensorscript_size, GNUNET_NO, | 704 | GNUNET_DISK_file_size (sensorscript_path, |
705 | &sensorscript_size, | ||
706 | GNUNET_NO, | ||
695 | GNUNET_YES)) | 707 | GNUNET_YES)) |
696 | { | ||
697 | sensorscriptname_size = strlen (sensor->ext_process) + 1; | 708 | sensorscriptname_size = strlen (sensor->ext_process) + 1; |
698 | } | ||
699 | } | 709 | } |
700 | /* Construct the msg */ | 710 | /* Construct the msg */ |
701 | total_size = | 711 | total_size = |
@@ -718,8 +728,8 @@ create_full_sensor_msg (char *sensorname) | |||
718 | memcpy (dummy, sensor->ext_process, sensorscriptname_size); | 728 | memcpy (dummy, sensor->ext_process, sensorscriptname_size); |
719 | dummy += sensorscriptname_size; | 729 | dummy += sensorscriptname_size; |
720 | GNUNET_DISK_fn_read (sensorscript_path, dummy, sensorscript_size); | 730 | GNUNET_DISK_fn_read (sensorscript_path, dummy, sensorscript_size); |
721 | GNUNET_free (sensorscript_path); | ||
722 | } | 731 | } |
732 | GNUNET_free_non_null (sensorscript_path); | ||
723 | GNUNET_free (sensor_path); | 733 | GNUNET_free (sensor_path); |
724 | return msg; | 734 | return msg; |
725 | } | 735 | } |