]> granicus.if.org Git - p11-kit/commitdiff
Return proper errors when NULL is passed to mutex functions.
authorStef Walter <stefw@collabora.co.uk>
Thu, 26 May 2011 07:58:56 +0000 (09:58 +0200)
committerStef Walter <stefw@collabora.co.uk>
Thu, 26 May 2011 07:58:56 +0000 (09:58 +0200)
p11-kit/p11-kit-lib.c

index 59cdd19eb99ef4f0dd4028cb3e343b998e861076..abc58f8be5d7fed7502d7416ee7f2c436a771790 100644 (file)
@@ -197,6 +197,9 @@ create_mutex (CK_VOID_PTR_PTR mut)
        pthread_mutex_t *pmutex;
        int err;
 
+       if (mut == NULL)
+               return CKR_ARGUMENTS_BAD;
+
        pmutex = malloc (sizeof (pthread_mutex_t));
        if (!pmutex)
                return CKR_HOST_MEMORY;
@@ -215,6 +218,9 @@ destroy_mutex (CK_VOID_PTR mut)
        pthread_mutex_t *pmutex = mut;
        int err;
 
+       if (mut == NULL)
+               return CKR_MUTEX_BAD;
+
        err = pthread_mutex_destroy (pmutex);
        if (err == EINVAL)
                return CKR_MUTEX_BAD;
@@ -230,6 +236,9 @@ lock_mutex (CK_VOID_PTR mut)
        pthread_mutex_t *pmutex = mut;
        int err;
 
+       if (mut == NULL)
+               return CKR_MUTEX_BAD;
+
        err = pthread_mutex_lock (pmutex);
        if (err == EINVAL)
                return CKR_MUTEX_BAD;
@@ -244,6 +253,9 @@ unlock_mutex (CK_VOID_PTR mut)
        pthread_mutex_t *pmutex = mut;
        int err;
 
+       if (mut == NULL)
+               return CKR_MUTEX_BAD;
+
        err = pthread_mutex_unlock (pmutex);
        if (err == EINVAL)
                return CKR_MUTEX_BAD;