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

Author: Daniel-Constantin Mierla <[email protected]>
Committer: Daniel-Constantin Mierla <[email protected]>
Date: 2019-09-06T20:35:08+02:00

core: ensure index of preprocessor directive conditions is not negative

- avoid accessing the array at negative index for else processing

---

Modified: src/core/cfg.lex

---

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

---

diff --git a/src/core/cfg.lex b/src/core/cfg.lex
index 00fd4b5e49..53f33431df 100644
--- a/src/core/cfg.lex
+++ b/src/core/cfg.lex
@@ -1942,14 +1942,24 @@ static void pp_ifdef()
 
 static void pp_else()
 {
+       if(pp_sptr==0) {
+               LM_WARN("invalid position for preprocessor directive 'else'"
+                               " - at %s line %d\n", (finame)?finame:"cfg", 
line);
+               return;
+       }
        pp_ifdef_stack[pp_sptr-1] ^= 1;
        pp_update_state();
 }
 
 static void pp_endif()
 {
-       pp_sptr--;
        pp_ifdef_level_update(-1);
+       if(pp_sptr==0) {
+               LM_WARN("invalid position for preprocessor directive 'else'"
+                               " - at %s line %d\n", (finame)?finame:"cfg", 
line);
+               return;
+       }
+       pp_sptr--;
        pp_update_state();
 }
 


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

Reply via email to