]> sigrok.org Git - libsigrok.git/blobdiff - src/soft-trigger.c
scpi-pps: Add a missing "break" in config_get().
[libsigrok.git] / src / soft-trigger.c
index 50fdd41cec094999764311fc66475dcfbb1f91dc..c92365e2baf4eb43aea24baf5115d7c871950ea0 100644 (file)
@@ -38,7 +38,16 @@ SR_PRIV struct soft_trigger_logic *soft_trigger_logic_new(
        stl->unitsize = (g_slist_length(sdi->channels) + 7) / 8;
        stl->prev_sample = g_malloc0(stl->unitsize);
        stl->pre_trigger_size = stl->unitsize * pre_trigger_samples;
-       stl->pre_trigger_buffer = g_malloc(stl->pre_trigger_size);
+       stl->pre_trigger_buffer = g_try_malloc(stl->pre_trigger_size);
+       if (pre_trigger_samples > 0 && !stl->pre_trigger_buffer) {
+               /*
+                * Error out if g_try_malloc() failed (or was invoked as
+                * g_try_malloc(0)) *and* more than 0 pretrigger samples
+                * were requested.
+                */
+               soft_trigger_logic_free(stl);
+               return NULL;
+       }
        stl->pre_trigger_head = stl->pre_trigger_buffer;
 
        if (stl->pre_trigger_size > 0 && !stl->pre_trigger_buffer) {