]> git.ozlabs.org Git - ppp.git/commitdiff
CLang detected possible invalid memory access (-Wsizeof-pointer-memaccess)
authorEivind Næss <eivnaes@yahoo.com>
Thu, 23 Sep 2021 14:44:06 +0000 (07:44 -0700)
committerEivind Næss <eivnaes@yahoo.com>
Thu, 23 Sep 2021 14:44:06 +0000 (07:44 -0700)
rc_find_server() resets the secret by setting *secret = 0 instead of what
was likely intended: memset the entire array. In case of error, moved the
memset operation outside of the rc_find_server() function. It's only used
in one place anyway.

Signed-off-by: Eivind Næss <eivnaes@yahoo.com>
pppd/plugins/radius/config.c
pppd/plugins/radius/sendserver.c

index 871cea060cb0e68cbccd99957ca1e800b55b0e8c..47c172cccf00234b9bcc135a63a14e9a30c7006b 100644 (file)
@@ -525,7 +525,6 @@ int rc_find_server (char *server_name, UINT4 *ip_addr, char *secret)
        if (result == 0)
        {
                memset (buffer, '\0', sizeof (buffer));
-               memset (secret, '\0', sizeof (secret));
                error("rc_find_server: couldn't find RADIUS server %s in %s",
                      server_name, rc_conf_str("servers"));
                return (-1);
index 0c0ef30f8d37f41309cc395a9d3fad5153130f08..d7bebdb977adc1a6c8bef1efbc60c28673c8b8e0 100644 (file)
@@ -228,6 +228,7 @@ int rc_send_server (SEND_DATA *data, char *msg, REQUEST_INFO *info)
        {
                if (rc_find_server (server_name, &auth_ipaddr, secret) != 0)
                {
+                       memset (secret, '\0', sizeof (secret));
                        return (ERROR_RC);
                }
        }