From 363c82015fd985bad6293c01fe1c5e509e76546b Mon Sep 17 00:00:00 2001 From: Eldad Zinger Date: Mon, 27 Sep 2010 10:45:29 +0200 Subject: [PATCH] sdp: add some checking & protection for enum values in debug utilities Signed-off-by: Eldad Zinger --- drivers/infiniband/ulp/sdp/sdp.h | 4 +++- drivers/infiniband/ulp/sdp/sdp_dbg.h | 14 +++++++++----- 2 files changed, 12 insertions(+), 6 deletions(-) diff --git a/drivers/infiniband/ulp/sdp/sdp.h b/drivers/infiniband/ulp/sdp/sdp.h index 0fb0df75ff3c..fef5a11de200 100644 --- a/drivers/infiniband/ulp/sdp/sdp.h +++ b/drivers/infiniband/ulp/sdp/sdp.h @@ -539,8 +539,10 @@ static inline char *mid2str(int mid) ENUM2STR(SDP_MID_SINKAVAIL), }; - if (mid >= ARRAY_SIZE(mid2str)) + if (mid < 0 || mid >= ARRAY_SIZE(mid2str)) { + printk(KERN_WARNING "mid %d is illegal\n", mid); return NULL; + } return mid2str[mid]; } diff --git a/drivers/infiniband/ulp/sdp/sdp_dbg.h b/drivers/infiniband/ulp/sdp/sdp_dbg.h index da9bdc9f57ae..7353da0cce12 100644 --- a/drivers/infiniband/ulp/sdp/sdp_dbg.h +++ b/drivers/infiniband/ulp/sdp/sdp_dbg.h @@ -176,8 +176,10 @@ static inline char *sdp_state_str(int state) ENUM2STR(TCP_CLOSING), }; - if (state < 0 || state >= ARRAY_SIZE(state2str)) - return "unknown"; + if (state < 0 || state >= ARRAY_SIZE(state2str)) { + printk(KERN_WARNING "state %d is illegal\n", state); + return NULL; + } return state2str[state]; } @@ -202,11 +204,13 @@ static inline const char* rdma_cm_event_str(int event) ENUM2STR(RDMA_CM_EVENT_ADDR_CHANGE), ENUM2STR(RDMA_CM_EVENT_TIMEWAIT_EXIT) }; - if (event < 0 || event >= ARRAY_SIZE(state2str)) - return "unknown"; - return state2str[event]; + if (event < 0 || event >= ARRAY_SIZE(state2str)) { + printk(KERN_WARNING "event %d is illegal\n", event); + return NULL; + } + return state2str[event]; } struct sdp_bsdh; -- 2.50.1