Module: kamailio
Branch: master
Commit: abf9f244a96a9c2112036af24a1cc3435b6be41d
URL: 
https://github.com/kamailio/kamailio/commit/abf9f244a96a9c2112036af24a1cc3435b6be41d

Author: Daniel-Constantin Mierla <[email protected]>
Committer: Daniel-Constantin Mierla <[email protected]>
Date: 2021-04-09T09:34:29+02:00

core: main - checking of optarg for covering all unixes

---

Modified: src/main.c

---

Diff:  
https://github.com/kamailio/kamailio/commit/abf9f244a96a9c2112036af24a1cc3435b6be41d.diff
Patch: 
https://github.com/kamailio/kamailio/commit/abf9f244a96a9c2112036af24a1cc3435b6be41d.patch

---

diff --git a/src/main.c b/src/main.c
index 44fb940393..405b442158 100644
--- a/src/main.c
+++ b/src/main.c
@@ -2095,6 +2095,10 @@ int main(int argc, char** argv)
                                        ksr_cfg_print_mode = 1;
                                        break;
                        case KARGOPTVAL+10:
+                                       if (optarg == NULL) {
+                                               fprintf(stderr, "bad atexit 
value\n");
+                                               goto error;
+                                       }
                                        if(optarg[0]=='y' || optarg[0]=='1') {
                                                ksr_atexit_mode = 1;
                                        } else if(optarg[0]=='n' || 
optarg[0]=='0') {
@@ -2234,6 +2238,10 @@ int main(int argc, char** argv)
                                        };
                                        break;
                        case 'u':
+                                       if (optarg == NULL) {
+                                               fprintf(stderr, "bad -u 
parameter\n");
+                                               goto error;
+                                       }
                                        /* user needed for possible shm. 
pre-init */
                                        user=optarg;
                                        break;
@@ -2293,6 +2301,10 @@ int main(int argc, char** argv)
 
                        /* long options */
                        case KARGOPTVAL:
+                                       if (optarg == NULL) {
+                                               fprintf(stderr, "bad alias 
parameter\n");
+                                               goto error;
+                                       }
                                        if(parse_phostport(optarg, &tmp, 
&tmp_len,
                                                                                
        &port, &proto)!=0) {
                                                fprintf(stderr, "Invalid alias 
value '%s'\n", optarg);
@@ -2304,24 +2316,40 @@ int main(int argc, char** argv)
                                        }
                                        break;
                        case KARGOPTVAL+1:
+                                       if (optarg == NULL) {
+                                               fprintf(stderr, "bad subst 
parameter\n");
+                                               goto error;
+                                       }
                                        if(pp_subst_add(optarg)<0) {
                                                LM_ERR("failed to add subst 
expression: %s\n", optarg);
                                                goto error;
                                        }
                                        break;
                        case KARGOPTVAL+2:
+                                       if (optarg == NULL) {
+                                               fprintf(stderr, "bad substdef 
parameter\n");
+                                               goto error;
+                                       }
                                        if(pp_substdef_add(optarg, 0)<0) {
                                                LM_ERR("failed to add substdef 
expression: %s\n", optarg);
                                                goto error;
                                        }
                                        break;
                        case KARGOPTVAL+3:
+                                       if (optarg == NULL) {
+                                               fprintf(stderr, "bad substdefs 
parameter\n");
+                                               goto error;
+                                       }
                                        if(pp_substdef_add(optarg, 1)<0) {
                                                LM_ERR("failed to add substdefs 
expression: %s\n", optarg);
                                                goto error;
                                        }
                                        break;
                        case KARGOPTVAL+4:
+                                       if (optarg == NULL) {
+                                               fprintf(stderr, "bad server if 
parameter\n");
+                                               goto error;
+                                       }
                                        server_id=(int)strtol(optarg, &tmp, 10);
                                        if ((tmp==0) || (*tmp)){
                                                LM_ERR("bad server_id value: 
%s\n", optarg);
@@ -2383,12 +2411,20 @@ int main(int argc, char** argv)
        while((c=getopt_long(argc, argv, options, long_options, 
&option_index))!=-1) {
                switch(c) {
                        case KARGOPTVAL+5:
+                                       if (optarg == NULL) {
+                                               fprintf(stderr, "bad load 
module parameter\n");
+                                               goto error;
+                                       }
                                        if (load_module(optarg)!=0) {
                                                LM_ERR("failed to load the 
module: %s\n", optarg);
                                                goto error;
                                        }
                                        break;
                        case KARGOPTVAL+6:
+                                       if (optarg == NULL) {
+                                               fprintf(stderr, "bad modparam 
parameter\n");
+                                               goto error;
+                                       }
                                        if(set_mod_param_serialized(optarg) < 
0) {
                                                LM_ERR("failed to set modparam: 
%s\n", optarg);
                                                goto error;


_______________________________________________
Kamailio (SER) - Development Mailing List
[email protected]
https://lists.kamailio.org/cgi-bin/mailman/listinfo/sr-dev

Reply via email to