Explorar o código

core: safety checks for swich statements with no case branch

Daniel-Constantin Mierla %!s(int64=10) %!d(string=hai) anos
pai
achega
af9deb9026
Modificáronse 1 ficheiros con 6 adicións e 2 borrados
  1. 6 2
      switch.c

+ 6 - 2
switch.c

@@ -230,7 +230,9 @@ int fix_switch(struct action* t)
 				LM_DBG("default only switch optimized away (BLOCK_T)\n");
 				return 0;
 			}
-			LM_DBG("default only switch with side-effect...\n");
+			LM_CRIT("default only switch with side-effect not expected at this point\n");
+			ret=E_BUG;
+			goto error;
 		}else{
 			LM_CRIT("empty switch not expected at this point\n");
 			ret=E_BUG;
@@ -545,7 +547,9 @@ static int fix_match(struct action* t)
 				LM_DBG("default only switch optimized away (BLOCK_T)\n");
 				return 0;
 			}
-			LM_DBG("default only switch with side-effect...\n");
+			LM_CRIT("default only switch with side-effect not expected at this point\n");
+			ret=E_BUG;
+			goto error;
 		}else{
 			LM_CRIT("empty switch not expected at this point\n");
 			ret=E_BUG;