]> git.karo-electronics.de Git - karo-tx-linux.git/commitdiff
drivers/message/fusion/mptbase.c: ensure NUL-termination of MptCallbacksName elements
authorFerenc Wagner <wferi@niif.hu>
Wed, 16 Nov 2011 23:41:15 +0000 (10:41 +1100)
committerStephen Rothwell <sfr@canb.auug.org.au>
Mon, 28 Nov 2011 04:37:40 +0000 (15:37 +1100)
I just stumbled upon this while pondering over
https://bugzilla.kernel.org/show_bug.cgi?id=26692 and thought this could
be made better.

[akpm@linux-foundation.org: coding-style fixes]
Signed-off-by: Ferenc Wagner <wferi@niif.hu>
Cc: Desai <kashyap.desai@lsi.com>
Signed-off-by: Andrew Morton <akpm@linux-foundation.org>
drivers/message/fusion/mptbase.c
drivers/message/fusion/mptbase.h

index e9c6a6047a00cfcf5c28306226e62ef148a35531..42db600826d6228095929b55082285e8fe786637 100644 (file)
@@ -115,7 +115,8 @@ module_param(mpt_fwfault_debug, int, 0600);
 MODULE_PARM_DESC(mpt_fwfault_debug,
                 "Enable detection of Firmware fault and halt Firmware on fault - (default=0)");
 
-static char    MptCallbacksName[MPT_MAX_PROTOCOL_DRIVERS][50];
+static char
+MptCallbacksName[MPT_MAX_PROTOCOL_DRIVERS][MPT_MAX_CALLBACKNAME_LEN + 1];
 
 #ifdef MFCNT
 static int mfcounter = 0;
@@ -717,8 +718,8 @@ mpt_register(MPT_CALLBACK cbfunc, MPT_DRIVER_CLASS dclass, char *func_name)
                        MptDriverClass[cb_idx] = dclass;
                        MptEvHandlers[cb_idx] = NULL;
                        last_drv_idx = cb_idx;
-                       memcpy(MptCallbacksName[cb_idx], func_name,
-                           strlen(func_name) > 50 ? 50 : strlen(func_name));
+                       strlcpy(MptCallbacksName[cb_idx], func_name,
+                               MPT_MAX_CALLBACKNAME_LEN+1);
                        break;
                }
        }
index b4d24dc081ae5de35c3d4d0c3765ddf63235b517..76c05bc24cb7ab27b9787bc50cc043681077a8da 100644 (file)
@@ -89,6 +89,7 @@
  */
 #define MPT_MAX_ADAPTERS               18
 #define MPT_MAX_PROTOCOL_DRIVERS       16
+#define MPT_MAX_CALLBACKNAME_LEN       49
 #define MPT_MAX_BUS                    1       /* Do not change */
 #define MPT_MAX_FC_DEVICES             255
 #define MPT_MAX_SCSI_DEVICES           16