strlcpy() reads the entire source buffer first.  This read may exceed the
destination size limit.  This is both inefficient and can lead to linear
read overflows if a source string is not NUL-terminated [1].  In an effort
to remove strlcpy() completely [2], replace strlcpy() here with strscpy().
No return values were used, so direct replacement is safe.
[1] https://www.kernel.org/doc/html/latest/process/deprecated.html#strlcpy
[2] https://github.com/KSPP/linux/issues/89
Signed-off-by: Azeem Shaikh <azeemshaikh38@gmail.com>
Link: https://lore.kernel.org/r/20230530160248.411637-1-azeemshaikh38@gmail.com
Reviewed-by: Kees Cook <keescook@chromium.org>
Signed-off-by: Martin K. Petersen <martin.petersen@oracle.com>
 
                        MptDriverClass[cb_idx] = dclass;
                        MptEvHandlers[cb_idx] = NULL;
                        last_drv_idx = cb_idx;
-                       strlcpy(MptCallbacksName[cb_idx], func_name,
+                       strscpy(MptCallbacksName[cb_idx], func_name,
                                MPT_MAX_CALLBACKNAME_LEN+1);
                        break;
                }
                break;
        }
        if (ds)
-               strlcpy(evStr, ds, EVENT_DESCR_STR_SZ);
+               strscpy(evStr, ds, EVENT_DESCR_STR_SZ);
 
 
        devtprintk(ioc, printk(MYIOC_s_DEBUG_FMT
 
                                if (mpt_config(ioc, &cfg) == 0) {
                                        ManufacturingPage0_t *pdata = (ManufacturingPage0_t *) pbuf;
                                        if (strlen(pdata->BoardTracerNumber) > 1) {
-                                               strlcpy(karg.serial_number,
+                                               strscpy(karg.serial_number,
                                                        pdata->BoardTracerNumber, 24);
                                        }
                                }