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