aboutsummaryrefslogtreecommitdiff
path: root/src/sensordashboard
diff options
context:
space:
mode:
authorChristian Grothoff <christian@grothoff.org>2014-12-16 19:25:11 +0000
committerChristian Grothoff <christian@grothoff.org>2014-12-16 19:25:11 +0000
commite5b1301f208d9f1220b0d3de35e3283e1be177e0 (patch)
treeebcde6cb5734d9ae410705aac2080c7167f11a98 /src/sensordashboard
parentdacfa714fa0a39482a86ff6f1791bb1b09fc35b4 (diff)
downloadgnunet-e5b1301f208d9f1220b0d3de35e3283e1be177e0.tar.gz
gnunet-e5b1301f208d9f1220b0d3de35e3283e1be177e0.zip
-fix leak
Diffstat (limited to 'src/sensordashboard')
-rw-r--r--src/sensordashboard/gnunet-service-sensordashboard.c26
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}