From 8a81af663ee87d0a572db21fee303dc1a018f863 Mon Sep 17 00:00:00 2001 From: Daniel Mack Date: Thu, 8 Jan 2015 14:12:36 +0100 Subject: [PATCH] connection.h: make kdbus_conn_{un,}lock2() NULL pointer resistant Allow NULL pointers in both arguments to kdbus_conn_lock2() and kdbus_conn_unlock2(). Signed-off-by: Daniel Mack --- connection.h | 18 ++++++++++++------ 1 file changed, 12 insertions(+), 6 deletions(-) diff --git a/connection.h b/connection.h index 86a25d2..5b5a27a 100644 --- a/connection.h +++ b/connection.h @@ -219,11 +219,15 @@ static inline int kdbus_conn_is_monitor(const struct kdbus_conn *conn) static inline void kdbus_conn_lock2(struct kdbus_conn *a, struct kdbus_conn *b) { if (a < b) { - mutex_lock(&a->lock); - mutex_lock_nested(&b->lock, 1); + if (a) + mutex_lock(&a->lock); + if (b) + mutex_lock_nested(&b->lock, 1); } else { - mutex_lock(&b->lock); - mutex_lock_nested(&a->lock, 1); + if (b) + mutex_lock(&b->lock); + if (a) + mutex_lock_nested(&a->lock, 1); } } @@ -237,8 +241,10 @@ static inline void kdbus_conn_lock2(struct kdbus_conn *a, struct kdbus_conn *b) static inline void kdbus_conn_unlock2(struct kdbus_conn *a, struct kdbus_conn *b) { - mutex_unlock(&a->lock); - mutex_unlock(&b->lock); + if (a) + mutex_unlock(&a->lock); + if (b) + mutex_unlock(&b->lock); } #endif -- 2.34.1