chan_sip: Ensure 'qualifygap' isn't negative
authorSean Bright <sean.bright@gmail.com>
Mon, 25 Mar 2019 19:31:23 +0000 (15:31 -0400)
committerSean Bright <sean.bright@gmail.com>
Mon, 25 Mar 2019 19:32:47 +0000 (13:32 -0600)
Passing negative intervals to the scheduler rips a hole in the
space-time continuum.

ASTERISK-25792 #close
Reported by: Paul Sandys

Change-Id: Ie706f21cee05f76ffb6f7d89e9c867930ee7bcd7

channels/chan_sip.c

index b5ee52e..b5bfad4 100644 (file)
@@ -33182,7 +33182,8 @@ static int reload_config(enum channelreloadreason reason)
                                ast_log(LOG_WARNING, "Usage of SIP_CAUSE is deprecated.  Please use HANGUPCAUSE instead.\n");
                        }
                } else if (!strcasecmp(v->name, "qualifygap")) {
-                       if (sscanf(v->value, "%30d", &global_qualify_gap) != 1) {
+                       if (sscanf(v->value, "%30d", &global_qualify_gap) != 1
+                               || global_qualify_gap < 0) {
                                ast_log(LOG_WARNING, "Invalid qualifygap '%s' at line %d of %s\n", v->value, v->lineno, config);
                                global_qualify_gap = DEFAULT_QUALIFY_GAP;
                        }