]> git.ipfire.org Git - thirdparty/lldpd.git/commitdiff
lldpd: use strdup() on arguments that could be changed by lldpcli
authorVincent Bernat <vincent@bernat.im>
Sun, 2 Nov 2014 17:10:55 +0000 (18:10 +0100)
committerVincent Bernat <vincent@bernat.im>
Sun, 2 Nov 2014 17:10:55 +0000 (18:10 +0100)
And add the appropriate "const" modifier for those that don't. The
compiler should warn us if we did something wrong.

src/daemon/lldpd.c
src/daemon/lldpd.h

index 10c5ed791926a90615249822a372bfd4f35b7204..4ccf4e005561bc92b01243e7c90538bc4275c0ff 100644 (file)
@@ -1284,9 +1284,9 @@ lldpd_main(int argc, char *argv[], char *envp[])
        int ch, debug = 0;
 #ifdef USE_SNMP
        int snmp = 0;
-       char *agentx = NULL;    /* AgentX socket */
+       const char *agentx = NULL;      /* AgentX socket */
 #endif
-       char *ctlname = LLDPD_CTL_SOCKET;
+       const char *ctlname = LLDPD_CTL_SOCKET;
        char *mgmtp = NULL;
        char *cidp = NULL;
        char *interfaces = NULL;
@@ -1353,7 +1353,7 @@ lldpd_main(int argc, char *argv[], char *envp[])
                                fprintf(stderr, "-m can only be used once\n");
                                usage();
                        }
-                       mgmtp = optarg;
+                       mgmtp = strdup(optarg);
                        break;
                case 'u':
                        if (ctlname) {
@@ -1367,14 +1367,14 @@ lldpd_main(int argc, char *argv[], char *envp[])
                                fprintf(stderr, "-I can only be used once\n");
                                usage();
                        }
-                       interfaces = optarg;
+                       interfaces = strdup(optarg);
                        break;
                case 'C':
                        if (cidp) {
                                fprintf(stderr, "-C can only be used once\n");
                                usage();
                        }
-                       cidp = optarg;
+                       cidp = strdup(optarg);
                        break;
                case 'L':
                        if (strlen(optarg)) lldpcli = optarg;
index 797623c8f7757301be3fd254c4a30855c24f5d8b..94e1697563d894be28075ccbd46a243e73b47869 100644 (file)
@@ -113,7 +113,7 @@ struct lldpd {
        int                      g_snmp;
        struct event            *g_snmp_timeout;
        void                    *g_snmp_fds;
-       char                    *g_snmp_agentx;
+       const char              *g_snmp_agentx;
 #endif /* USE_SNMP */
 
        /* Unix socket handling */