]> www.infradead.org Git - users/jedix/linux-maple.git/commitdiff
sdp: add some checking & protection for enum values in debug utilities
authorEldad Zinger <eldadz@mellanox.co.il>
Mon, 27 Sep 2010 08:45:29 +0000 (10:45 +0200)
committerMukesh Kacker <mukesh.kacker@oracle.com>
Tue, 6 Oct 2015 12:05:23 +0000 (05:05 -0700)
Signed-off-by: Eldad Zinger <eldadz@mellanox.co.il>
drivers/infiniband/ulp/sdp/sdp.h
drivers/infiniband/ulp/sdp/sdp_dbg.h

index 0fb0df75ff3cf2d708e417033299253923c3e06d..fef5a11de20011cf38262372577d4dbe976c8581 100644 (file)
@@ -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];
 }
index da9bdc9f57ae286d3d0609c9e41d7695139f7133..7353da0cce120110d0b3a5e5f245dff8ea763152 100644 (file)
@@ -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;