Navigation


Changeset 293:ec67c5096eeb in freeDiameter


Ignore:
Timestamp:
May 10, 2010, 2:43:06 PM (14 years ago)
Author:
Sebastien Decugis <sdecugis@nict.go.jp>
Branch:
default
Phase:
public
Message:

Fix small issue with access to freed memory

File:
1 edited

Legend:

Unmodified
Added
Removed
  • libfreeDiameter/sessions.c

    r291 r293  
    591591{
    592592        struct session * sess;
     593        uint32_t hash;
    593594       
    594595        TRACE_ENTRY("%p", session);
     
    596597       
    597598        sess = *session;
     599        hash = sess->hash;
    598600        *session = NULL;
    599601       
    600         CHECK_FCT( pthread_mutex_lock( H_LOCK(sess->hash) ) );
     602        CHECK_POSIX( pthread_mutex_lock( H_LOCK(sess->hash) ) );
    601603        pthread_cleanup_push( fd_cleanup_mutex, H_LOCK(sess->hash) );
    602         CHECK_FCT( pthread_mutex_lock( &exp_lock ) );
     604        CHECK_POSIX( pthread_mutex_lock( &exp_lock ) );
    603605        if (FD_IS_LIST_EMPTY(&sess->states)) {
    604606                fd_list_unlink( &sess->chain_h );
     
    608610                free(sess);
    609611        }
    610         CHECK_FCT( pthread_mutex_unlock( &exp_lock ) );
     612        CHECK_POSIX( pthread_mutex_unlock( &exp_lock ) );
    611613        pthread_cleanup_pop(0);
    612         CHECK_FCT( pthread_mutex_unlock( H_LOCK(sess->hash) ) );
     614        CHECK_POSIX( pthread_mutex_unlock( H_LOCK(hash) ) );
    613615       
    614616        return 0;
Note: See TracChangeset for help on using the changeset viewer.