treewide: cleanup malloc calls
[collectd.git] / src / sigrok.c
index ba3e406..4e61f94 100644 (file)
@@ -1,6 +1,6 @@
 /*
  * collectd - src/sigrok.c
- * Copyright (C) 2013 Bert Vermeulen <bert@biot.com>
+ * Copyright (C) 2013 Bert Vermeulen
  *
  * This program is free software: you can redistribute it and/or modify
  * it under the terms of the GNU General Public License as published by
@@ -14,6 +14,9 @@
  *
  * You should have received a copy of the GNU General Public License
  * along with this program.  If not, see <http://www.gnu.org/licenses/>.
+ *
+ * Authors:
+ *   Bert Vermeulen <bert at biot.com>
  */
 
 #include "collectd.h"
@@ -69,7 +72,7 @@ static int sigrok_config_device(oconfig_item_t *ci)
        struct config_device *cfdev;
        int i;
 
-       if (!(cfdev = malloc(sizeof(struct config_device)))) {
+       if (!(cfdev = malloc(sizeof(*cfdev)))) {
                ERROR("sigrok plugin: malloc() failed.");
                return -1;
        }
@@ -133,9 +136,9 @@ static int sigrok_config(oconfig_item_t *ci)
        return 0;
 }
 
-static char *sigrok_value_type(const struct sr_datafeed_analog *analog)
+static const char *sigrok_value_type(const struct sr_datafeed_analog *analog)
 {
-       char *s;
+       const char *s;
 
        if (analog->mq == SR_MQ_VOLTAGE)
                s = "voltage";
@@ -233,14 +236,14 @@ static int sigrok_init_driver(struct config_device *cfdev,
 
        drvopts = NULL;
        if (cfdev->conn) {
-               if (!(src = malloc(sizeof(struct sr_config))))
+               if (!(src = malloc(sizeof(*src))))
                        return -1;
                src->key = SR_CONF_CONN;
                src->data = g_variant_new_string(cfdev->conn);
                drvopts = g_slist_append(drvopts, src);
        }
        if (cfdev->serialcomm) {
-               if (!(src = malloc(sizeof(struct sr_config))))
+               if (!(src = malloc(sizeof(*src))))
                        return -1;
                src->key = SR_CONF_SERIALCOMM;
                src->data = g_variant_new_string(cfdev->serialcomm);
@@ -357,10 +360,13 @@ static int sigrok_init(void)
                return -1;
        }
 
-       if ((status = plugin_thread_create(&sr_thread, NULL, sigrok_read_thread,
-                       NULL)) != 0) {
+       status = plugin_thread_create(&sr_thread, NULL, sigrok_read_thread,
+                       NULL);
+       if (status != 0)
+       {
+               char errbuf[1024];
                ERROR("sigrok plugin: Failed to create thread: %s.",
-                               strerror(status));
+                               sstrerror (errno, errbuf, sizeof (errbuf)));
                return -1;
        }
        sr_thread_running = TRUE;