]> sigrok.org Git - libsigrok.git/commitdiff
Return SR_ERR_MALLOC upon allocation errors.
authorUwe Hermann <redacted>
Tue, 30 Oct 2012 19:20:22 +0000 (20:20 +0100)
committerUwe Hermann <redacted>
Tue, 30 Oct 2012 19:25:54 +0000 (20:25 +0100)
Add some TODOs.

16 files changed:
hardware/agilent-dmm/api.c
hardware/alsa/alsa.c
hardware/asix-sigma/asix-sigma.c
hardware/common/serial.c
hardware/demo/demo.c
hardware/fluke-dmm/api.c
hardware/fluke-dmm/fluke.c
hardware/fx2lafw/fx2lafw.c
hardware/genericdmm/api.c
hardware/hantek-dso/api.c
hardware/openbench-logic-sniffer/ols.c
hardware/radioshack-dmm/api.c
hardware/radioshack-dmm/radioshack.c
hardware/zeroplus-logic-cube/zeroplus.c
output/analog.c
output/float.c

index 7dfb2c65dfe7dc2f5a6aca14ed9a3ab345f46740..60f271b24721f464fe4281688ac27fd72887bf0b 100644 (file)
@@ -96,7 +96,7 @@ static int hw_init(void)
 
        if (!(drvc = g_try_malloc0(sizeof(struct drv_context)))) {
                sr_err("Driver context malloc failed.");
-               return SR_ERR;
+               return SR_ERR_MALLOC;
        }
 
        di->priv = drvc;
@@ -196,7 +196,10 @@ static GSList *hw_scan(GSList *options)
        }
 
        len = 128;
-       buf = g_try_malloc(len);
+       if (!(buf = g_try_malloc(len))) {
+               sr_err("Serial buffer malloc failed.");
+               return NULL;
+       }
        serial_readline2(fd, &buf, &len, 150);
        if (!len)
                return NULL;
@@ -211,7 +214,7 @@ static GSList *hw_scan(GSList *options)
                                        tokens[1], tokens[3])))
                                return NULL;
                        if (!(devc = g_try_malloc0(sizeof(struct dev_context)))) {
-                               sr_dbg("failed to malloc devc");
+                               sr_err("Device context malloc failed.");
                                return NULL;
                        }
                        devc->profile = &supported_agdmm[i];
index 4fb8c5d5e49fe32c0d8842591c8433ea0d67ae8f..c0f4ccaa35f2b24f94fa7a220ec0a2082a7a8592 100644 (file)
@@ -76,7 +76,7 @@ static int hw_init(const char *devinfo)
 
        if (!(ctx = g_try_malloc0(sizeof(struct context)))) {
                sr_err("alsa: %s: ctx malloc failed", __func__);
-               return 0;
+               return SR_ERR_MALLOC;
        }
 
        if (!(sdi = sr_dev_inst_new(0, SR_ST_ACTIVE, "alsa", NULL, NULL))) {
@@ -117,7 +117,7 @@ static int hw_dev_open(int dev_index)
        if (ret < 0) {
                sr_err("alsa: can't allocate hardware parameter structure (%s)",
                       snd_strerror(ret));
-               return SR_ERR;
+               return SR_ERR_MALLOC;
        }
 
        ret = snd_pcm_hw_params_any(ctx->capture_handle, ctx->hw_params);
index ed32e6a5ae93516f2350ffb32883c74031eaee67..7bf50104d094bcbc52d04f64c6798723b0b5ccf8 100644 (file)
@@ -440,7 +440,7 @@ static int hw_init(void)
 
        if (!(drvc = g_try_malloc0(sizeof(struct drv_context)))) {
                sr_err("asix-sigma: driver context malloc failed.");
-               return SR_ERR;
+               return SR_ERR_MALLOC;
        }
        adi->priv = drvc;
 
index 4a92a6684eba4edac865ab4c6ccd6658e1989877..38d4a5f121e08acaeb35da9340f095a14e1c65de 100644 (file)
@@ -166,7 +166,7 @@ SR_PRIV void *serial_backup_params(int fd)
        /* TODO: 'term' is never g_free()'d? */
        if (!(term = g_try_malloc(sizeof(struct termios)))) {
                sr_err("serial: %s: term malloc failed", __func__);
-               return NULL;
+               return -1;
        }
 
        tcgetattr(fd, term);
index 8300e6f4eac401212bb2852db911a24668199f0d..b8a4c242b048b5a8dd0c1c4226136be3d0cff9a1 100644 (file)
@@ -145,8 +145,8 @@ static int hw_init(void)
        struct drv_context *drvc;
 
        if (!(drvc = g_try_malloc0(sizeof(struct drv_context)))) {
-               sr_err("fx2lafw: driver context malloc failed.");
-               return SR_ERR;
+               sr_err("demo: driver context malloc failed.");
+               return SR_ERR_MALLOC;
        }
        ddi->priv = drvc;
 
index 5786438d9188e1b2c6f37a5fd776edb1725576f4..2c82d92d0568434294074b55739d8f3517c2f982 100644 (file)
@@ -87,7 +87,7 @@ static int hw_init(void)
 
        if (!(drvc = g_try_malloc0(sizeof(struct drv_context)))) {
                sr_err("Driver context malloc failed.");
-               return SR_ERR;
+               return SR_ERR_MALLOC;
        }
 
        di->priv = drvc;
index 6719b41ce6afc06d679ab5ad3efb61f420d43e4e..f8544e99c29d83645c724515b3e765e9dcc2106f 100644 (file)
@@ -54,8 +54,10 @@ static struct sr_datafeed_analog *handle_qm_v1(const struct sr_dev_inst *sdi,
        while(*e && *e == ' ')
                e++;
 
+       /* TODO: Check malloc return value. */
        analog = g_try_malloc0(sizeof(struct sr_datafeed_analog));
        analog->num_samples = 1;
+       /* TODO: Check malloc return value. */
        analog->data = g_try_malloc(sizeof(float));
        if (is_oor)
                *analog->data = NAN;
@@ -162,8 +164,10 @@ static struct sr_datafeed_analog *handle_qm_v2(const struct sr_dev_inst *sdi,
                return NULL;
        }
 
+       /* TODO: Check malloc return value. */
        analog = g_try_malloc0(sizeof(struct sr_datafeed_analog));
        analog->num_samples = 1;
+       /* TODO: Check malloc return value. */
        analog->data = g_try_malloc(sizeof(float));
        *analog->data = fvalue;
        analog->mq = -1;
index 9a1932701f587c807001d6f0b6dff046ac2c0973..e74312fb77b8a745d770bd007f7fafed4c7e03d6 100644 (file)
@@ -406,7 +406,7 @@ static int hw_init(void)
 
        if (!(drvc = g_try_malloc0(sizeof(struct drv_context)))) {
                sr_err("fx2lafw: driver context malloc failed.");
-               return SR_ERR;
+               return SR_ERR_MALLOC;
        }
 
        if (libusb_init(NULL) != 0) {
@@ -972,8 +972,10 @@ static int hw_dev_acquisition_start(const struct sr_dev_inst *sdi,
        const size_t size = get_buffer_size(devc);
 
        devc->transfers = g_try_malloc0(sizeof(*devc->transfers) * num_transfers);
-       if (!devc->transfers)
-               return SR_ERR;
+       if (!devc->transfers) {
+               sr_err("fx2lafw: USB transfers malloc failed.");
+               return SR_ERR_MALLOC;
+       }
 
        devc->num_transfers = num_transfers;
 
index 7e93f50cb36ef5ea9adf151955dfc9783c6ee878..5b12b2e42b48ffeaef132f6766effcfb5093b886 100644 (file)
@@ -152,7 +152,7 @@ static GSList *connect_usb(const char *conn)
                /* Found one. */
                if (!(devc = g_try_malloc0(sizeof(struct dev_context)))) {
                        sr_err("Device context malloc failed.");
-                       return 0;
+                       return NULL;
                }
 
                devcnt = g_slist_length(drvc->instances);
@@ -323,7 +323,7 @@ static int hw_init(void)
 
        if (!(drvc = g_try_malloc0(sizeof(struct drv_context)))) {
                sr_err("Driver context malloc failed.");
-               return SR_ERR;
+               return SR_ERR_MALLOC;
        }
 
        if (libusb_init(&genericdmm_usb_context) != 0) {
index e35dacbdd310193c8b786a62c4a8521aac925611..8c7a9dce7e4e6738f713ced9ec849d0b791dfdd2 100644 (file)
@@ -258,7 +258,7 @@ static int hw_init(void)
 
        if (!(drvc = g_try_malloc0(sizeof(struct drv_context)))) {
                sr_err("hantek-dso: driver context malloc failed.");
-               return SR_ERR;
+               return SR_ERR_MALLOC;
        }
 
        if (libusb_init(NULL) != 0) {
@@ -602,6 +602,7 @@ static void send_chunk(struct dev_context *devc, unsigned char *buf,
        analog.num_samples = num_samples;
        analog.mq = SR_MQ_VOLTAGE;
        analog.unit = SR_UNIT_VOLT;
+       /* TODO: Check malloc return value. */
        analog.data = g_try_malloc(analog.num_samples * sizeof(float) * num_probes);
        data_offset = 0;
        for (i = 0; i < analog.num_samples; i++) {
@@ -804,6 +805,7 @@ static int handle_event(int fd, int revents, void *cb_data)
                devc->trigger_offset = trigger_offset;
 
                num_probes = (devc->ch1_enabled && devc->ch2_enabled) ? 2 : 1;
+               /* TODO: Check malloc return value. */
                devc->framebuf = g_try_malloc(devc->framesize * num_probes * 2);
                devc->samp_buffered = devc->samp_received = 0;
 
index 5b13931c1b9c95e2b2327bcbd96dd35800fdbe36..ef3081c398d41530d4974cd925de60b19335efc7 100644 (file)
@@ -369,7 +369,7 @@ static int hw_init(void)
 
        if (!(drvc = g_try_malloc0(sizeof(struct drv_context)))) {
                sr_err("ols: driver context malloc failed.");
-               return SR_ERR;
+               return SR_ERR_MALLOC;
        }
        odi->priv = drvc;
 
@@ -763,6 +763,7 @@ static int receive_data(int fd, int revents, void *cb_data)
                 */
                sr_source_remove(fd);
                sr_source_add(fd, G_IO_IN, 30, receive_data, cb_data);
+               /* TODO: Check malloc return code. */
                devc->raw_sample_buf = g_try_malloc(devc->limit_samples * 4);
                if (!devc->raw_sample_buf) {
                        sr_err("ols: %s: devc->raw_sample_buf malloc failed",
@@ -1075,7 +1076,6 @@ static int hw_dev_acquisition_start(const struct sr_dev_inst *sdi,
 static int hw_dev_acquisition_stop(const struct sr_dev_inst *sdi,
                void *cb_data)
 {
-
        /* Avoid compiler warnings. */
        (void)cb_data;
 
index e9abf83068efc803e3e957ec28cd6aebf269e624..4eb5cbfa0ee995df59957768df6aa58009aadcd2 100644 (file)
@@ -85,7 +85,7 @@ static int hw_init(void)
 
        if (!(drvc = g_try_malloc0(sizeof(struct drv_context)))) {
                sr_err("Driver context malloc failed.");
-               return SR_ERR;
+               return SR_ERR_MALLOC;
        }
 
        di->priv = drvc;
index f14af46e75e45f18ad8e5e1cb3ca34d69d36f0fa..64ef59bee351daf07f9ae9de39b3a47aacf5b1b1 100644 (file)
@@ -229,8 +229,10 @@ static void rs_22_812_handle_packet(rs_22_812_packet *rs_packet,
        struct sr_datafeed_packet packet;
        struct sr_datafeed_analog *analog;
 
+       /* TODO: Check malloc return value. */
        analog = g_try_malloc0(sizeof(struct sr_datafeed_analog));
        analog->num_samples = 1;
+       /* TODO: Check malloc return value. */
        analog->data = g_try_malloc(sizeof(float));
        *analog->data = (float)rawval;
        analog->mq = -1;
index c22f9458418aee2524ab19cf7d1431312a7e469f..f1b6431b9f8c93a8e7f750305928d99700d73e7a 100644 (file)
@@ -257,7 +257,7 @@ static int hw_init(void)
 
        if (!(drvc = g_try_malloc0(sizeof(struct drv_context)))) {
                sr_err("zeroplus: driver context malloc failed.");
-               return SR_ERR;
+               return SR_ERR_MALLOC;
        }
        zdi->priv = drvc;
 
@@ -321,7 +321,7 @@ static GSList *hw_scan(GSList *options)
                /* Allocate memory for our private driver context. */
                if (!(devc = g_try_malloc0(sizeof(struct dev_context)))) {
                        sr_err("zp: %s: devc malloc failed", __func__);
-                       return 0;
+                       return NULL;
                }
                sdi->priv = devc;
                devc->num_channels = prof->channels;
index 6f3609c07435f4246e30c13609b75757e57349c5..4f8715aae28ac866acf966bef323ea7b0f910811 100644 (file)
@@ -30,7 +30,6 @@ struct context {
        GString *out;
 };
 
-
 static int init(struct sr_output *o)
 {
        struct context *ctx;
@@ -41,8 +40,10 @@ static int init(struct sr_output *o)
        if (!o || !o->sdi)
                return SR_ERR_ARG;
 
-       if (!(ctx = g_try_malloc0(sizeof(struct context))))
+       if (!(ctx = g_try_malloc0(sizeof(struct context)))) {
+               sr_err("output/analog: Context malloc failed.");
                return SR_ERR_MALLOC;
+       }
        o->internal = ctx;
 
        /* Get the number of probes and their names. */
index cd4ef8c36f0cddff67af7ce13708de9d662c0a5d..7812413d7c7508ad4253172d1f85413d1e0646eb 100644 (file)
@@ -43,8 +43,10 @@ static int init(struct sr_output *o)
        if (!o->sdi->driver)
                return SR_ERR_ARG;
 
-       if (!(ctx = g_try_malloc0(sizeof(struct context))))
+       if (!(ctx = g_try_malloc0(sizeof(struct context)))) {
+               sr_err("output/float: Context malloc failed.");
                return SR_ERR_MALLOC;
+       }
 
        o->internal = ctx;