...
| Code Block | ||
|---|---|---|
| ||
#include <pthread.h>
void *thread1(void *ptr);
void *thread2(void *ptr);
pthread_mutex_t m1 = PTHREAD_MUTEX_INITIALIZER;
pthread_mutex_t m2 = PTHREAD_MUTEX_INITIALIZER;
void *thread1(void *ptr) {
pthread_mutex_lock(&m1);
pthread_mutex_lock(&m2);
/* do some stuff that require locking mutex1 */
/* do some stuff that require locking mutex2 */
pthread_mutex_unlock(&m2);
pthread_mutex_unlock(&m1);
return NULL;
}
void *thread2(void *ptr) {
pthread_mutex_lock(&m1);
pthread_mutex_lock(&m2);
/* do some stuff that require locking mutex1 */
/* do some stuff that require locking mutex2 */
pthread_mutex_unlock(&m1);
pthread_mutex_unlock(&m2);
return NULL;
}
|
Risk Assessment
Recommendation | Severity | Likelihood | Remediation Cost | Priority | Level |
|---|---|---|---|---|---|
POS43-C | medium | probable | high | P3 | L3 |