Ignore:
Timestamp:
2011-11-08T22:08:11Z (13 years ago)
Author:
Jan Vesely <jano.vesely@…>
Branches:
lfn, master, serial, ticket/834-toolchain-update, topic/msim-upgrade, topic/simplify-dev-export
Children:
e9563c3
Parents:
7b5f4c9
Message:

hidsrv: Hangup session to mouse device after contacting the device.

It's not needed after initialization.
Fix possible session leak in error path.

File:
1 edited

Legend:

Unmodified
Added
Removed
  • uspace/srv/hid/input/proto/mousedev.c

    r7b5f4c9 r5288463  
    5454        /** Link to generic mouse device */
    5555        mouse_dev_t *mouse_dev;
    56        
    57         /** Session to mouse device */
    58         async_sess_t *sess;
    5956} mousedev_t;
    6057
     
    7269static void mousedev_destroy(mousedev_t *mousedev)
    7370{
    74         if (mousedev->sess != NULL)
    75                 async_hangup(mousedev->sess);
    76        
    7771        free(mousedev);
    7872}
     
    8983               
    9084                if (!IPC_GET_IMETHOD(call)) {
    91                         /* XXX Handle hangup */
     85                        mousedev_destroy(mousedev);
    9286                        return;
    9387                }
     
    129123                printf("%s: Failed allocating device structure for '%s'.\n",
    130124                    NAME, mdev->svc_name);
     125                async_hangup(sess);
    131126                return -1;
    132127        }
    133        
    134         mousedev->sess = sess;
    135128       
    136129        async_exch_t *exch = async_exchange_begin(sess);
     
    139132                    mdev->svc_name);
    140133                mousedev_destroy(mousedev);
     134                async_hangup(sess);
    141135                return -1;
    142136        }
     
    144138        int rc = async_connect_to_me(exch, 0, 0, 0, mousedev_callback_conn, mousedev);
    145139        async_exchange_end(exch);
     140        async_hangup(sess);
    146141       
    147142        if (rc != EOK) {
Note: See TracChangeset for help on using the changeset viewer.