Navigation


Changeset 691:78b665400097 in freeDiameter for libfdcore/p_out.c


Ignore:
Timestamp:
Jan 20, 2011, 7:44:27 PM (13 years ago)
Author:
Sebastien Decugis <sdecugis@nict.go.jp>
Branch:
default
Phase:
public
Message:

Cleanup all pthread_cleanup_push / pop pairs so that pop is always called after push, or ASSERT(0) is some grave errors

File:
1 edited

Legend:

Unmodified
Added
Removed
  • libfdcore/p_out.c

    r688 r691  
    6969        /* Save a request before sending so that there is no race condition with the answer */
    7070        if (msg_is_a_req) {
    71                 CHECK_FCT_DO( ret = fd_p_sr_store(srl, msg, &hdr->msg_hbhid, bkp_hbh), { free(buf); return ret; } );
     71                CHECK_FCT_DO( ret = fd_p_sr_store(srl, msg, &hdr->msg_hbhid, bkp_hbh), goto out );
    7272        }
    7373       
    7474        /* Send the message */
    75         CHECK_FCT_DO( ret = fd_cnx_send(cnx, buf, sz, flags), { free(buf); return ret; } );
     75        CHECK_FCT_DO( ret = fd_cnx_send(cnx, buf, sz, flags), );
     76out:
     77        ;       
    7678        pthread_cleanup_pop(1);
     79       
     80        if (ret)
     81                return ret;
    7782       
    7883        /* Free remaining messages (i.e. answers) */
Note: See TracChangeset for help on using the changeset viewer.