]> git.puffer.fish Git - mirror/frr.git/commitdiff
isisd: strncpy -> strlcpy
authorQuentin Young <qlyoung@cumulusnetworks.com>
Tue, 26 Feb 2019 19:48:12 +0000 (19:48 +0000)
committerQuentin Young <qlyoung@cumulusnetworks.com>
Tue, 26 Feb 2019 20:50:13 +0000 (20:50 +0000)
strncpy is a byte copy function not a string copy function

Signed-off-by: Quentin Young <qlyoung@cumulusnetworks.com>
isisd/isis_circuit.c
isisd/isis_circuit.h
isisd/isis_northbound.c
isisd/isisd.c

index 36d4a0d7c06a7b24883daa9cce9db68f49df3690..8377638b9216af3cbde0bd36ffcfc1f98d5f2fb7 100644 (file)
@@ -1305,8 +1305,8 @@ ferr_r isis_circuit_passwd_unset(struct isis_circuit *circuit)
        return ferr_ok();
 }
 
-static int isis_circuit_passwd_set(struct isis_circuit *circuit,
-                                  uint8_t passwd_type, const char *passwd)
+ferr_r isis_circuit_passwd_set(struct isis_circuit *circuit,
+                              uint8_t passwd_type, const char *passwd)
 {
        int len;
 
@@ -1319,7 +1319,8 @@ static int isis_circuit_passwd_set(struct isis_circuit *circuit,
                        "circuit password too long (max 254 chars)");
 
        circuit->passwd.len = len;
-       strncpy((char *)circuit->passwd.passwd, passwd, 255);
+       strlcpy((char *)circuit->passwd.passwd, passwd,
+               sizeof(circuit->passwd.passwd));
        circuit->passwd.type = passwd_type;
        return ferr_ok();
 }
index 73ead8f7dab34abb0bf0aae7e69b086cfe1b2916..e0ea4f78b44fbc26019bdd2511644dc366fd1ab3 100644 (file)
@@ -190,6 +190,8 @@ ferr_r isis_circuit_metric_set(struct isis_circuit *circuit, int level,
                               int metric);
 
 ferr_r isis_circuit_passwd_unset(struct isis_circuit *circuit);
+ferr_r isis_circuit_passwd_set(struct isis_circuit *circuit,
+                              uint8_t passwd_type, const char *passwd);
 ferr_r isis_circuit_passwd_cleartext_set(struct isis_circuit *circuit,
                                         const char *passwd);
 ferr_r isis_circuit_passwd_hmac_md5_set(struct isis_circuit *circuit,
index 3364a9f0bead4a01b588afcdce8e4b1cb127e909..2d1d6f592702f757dcb84525f5a46885f911237c 100644 (file)
@@ -2092,8 +2092,8 @@ lib_interface_isis_password_password_modify(enum nb_event event,
 
        password = yang_dnode_get_string(dnode, NULL);
        circuit = yang_dnode_get_entry(dnode, true);
-       circuit->passwd.len = strlen(password);
-       strncpy((char *)circuit->passwd.passwd, password, 255);
+
+       isis_circuit_passwd_set(circuit, circuit->passwd.type, password);
 
        return NB_OK;
 }
index 13cd510dd13885293516ef376c82bcff405cdf72..ad02220438f839576ac32c74cf4447a98e7a5c96 100644 (file)
@@ -1363,7 +1363,7 @@ struct isis_lsp *lsp_for_arg(const char *argv, dict_t *lspdb)
         * xxxx.xxxx.xxxx
         */
        if (argv)
-               strncpy(sysid, argv, 254);
+               strlcpy(sysid, argv, sizeof(sysid));
        if (argv && strlen(argv) > 3) {
                pos = argv + strlen(argv) - 3;
                if (strncmp(pos, "-", 1) == 0) {
@@ -1639,7 +1639,8 @@ static int isis_area_passwd_set(struct isis_area *area, int level,
                        return -1;
 
                modified.len = len;
-               strncpy((char *)modified.passwd, passwd, 255);
+               strlcpy((char *)modified.passwd, passwd,
+                       sizeof(modified.passwd));
                modified.type = passwd_type;
                modified.snp_auth = snp_auth;
        }