Ignore:
File:
1 edited

Legend:

Unmodified
Added
Removed
  • uspace/srv/net/tcp/pdu.c

    r2f19103 r4a0bc99  
    249249        if (pdu->text != NULL)
    250250                free(pdu->text);
     251        free(pdu);
    251252
    252253        return NULL;
     
    323324        size_t text_size;
    324325        uint16_t checksum;
     326        int rc;
    325327
    326328        npdu = tcp_pdu_new();
     
    330332        npdu->src = epp->local.addr;
    331333        npdu->dest = epp->remote.addr;
    332         tcp_header_encode(epp, seg, &npdu->header, &npdu->header_size);
     334        rc = tcp_header_encode(epp, seg, &npdu->header, &npdu->header_size);
     335        if (rc != EOK) {
     336                free(npdu);
     337                return rc;
     338        }
    333339
    334340        text_size = tcp_segment_text_size(seg);
    335341        npdu->text = calloc(1, text_size);
    336         if (npdu->text == NULL)
     342        if (npdu->text == NULL) {
     343                free(npdu->header);
     344                free(npdu);
    337345                return ENOMEM;
     346        }
    338347
    339348        npdu->text_size = text_size;
Note: See TracChangeset for help on using the changeset viewer.