From: Eldad Zinger Date: Mon, 27 Sep 2010 08:45:29 +0000 (+0200) Subject: sdp: add some checking & protection for enum values in debug utilities X-Git-Tag: v4.1.12-92~264^2~5^2~102 X-Git-Url: https://www.infradead.org/git/?a=commitdiff_plain;h=363c82015fd985bad6293c01fe1c5e509e76546b;p=users%2Fjedix%2Flinux-maple.git sdp: add some checking & protection for enum values in debug utilities Signed-off-by: Eldad Zinger --- diff --git a/drivers/infiniband/ulp/sdp/sdp.h b/drivers/infiniband/ulp/sdp/sdp.h index 0fb0df75ff3cf..fef5a11de2001 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 da9bdc9f57ae2..7353da0cce120 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;