X-Git-Url: https://sigrok.org/gitweb/?a=blobdiff_plain;ds=sidebyside;f=src%2Fsession.c;h=16fdfffa4bf945872bb3f8004346f76018cae4a6;hb=00f0016cc361008cd9eb2e52fd2a01f333c0e3cd;hp=ad39ddcf54f457212637d120caaec55fa5cc4a52;hpb=f670835f1fbc03525e995d6970a5495976ab7c1a;p=libsigrok.git diff --git a/src/session.c b/src/session.c index ad39ddcf..16fdfffa 100644 --- a/src/session.c +++ b/src/session.c @@ -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;