]> sigrok.org Git - libsigrok.git/blobdiff - src/session.c
Consistently use the _WIN32 #define.
[libsigrok.git] / src / session.c
index ad39ddcf54f457212637d120caaec55fa5cc4a52..16fdfffa4bf945872bb3f8004346f76018cae4a6 100644 (file)
@@ -1294,7 +1294,7 @@ SR_PRIV int sr_session_source_add_channel(struct sr_session *session,
        /* We should be using g_io_create_watch(), but can't without
         * changing the driver API, as the callback signature is different.
         */
-#ifdef G_OS_WIN32
+#ifdef _WIN32
        g_io_channel_win32_make_pollfd(channel, events, &pollfd);
 #else
        pollfd.fd = g_io_channel_unix_get_fd(channel);
@@ -1484,8 +1484,15 @@ SR_PRIV int sr_packet_copy(const struct sr_datafeed_packet *packet,
        case SR_DF_LOGIC:
                logic = packet->payload;
                logic_copy = g_malloc(sizeof(*logic_copy));
+               if (!logic_copy)
+                       return SR_ERR;
                logic_copy->length = logic->length;
                logic_copy->unitsize = logic->unitsize;
+               logic_copy->data = g_malloc(logic->length * logic->unitsize);
+               if (!logic_copy->data) {
+                       g_free(logic_copy);
+                       return SR_ERR;
+               }
                memcpy(logic_copy->data, logic->data, logic->length * logic->unitsize);
                (*copy)->payload = logic_copy;
                break;