]> git.ipfire.org Git - thirdparty/freeswitch.git/commitdiff
Skinny: avoid stack overflow by lowering button_template_helper size
authorMathieu Parent <math.parent@gmail.com>
Wed, 3 Mar 2010 07:48:42 +0000 (07:48 +0000)
committerMathieu Parent <math.parent@gmail.com>
Wed, 3 Mar 2010 07:48:42 +0000 (07:48 +0000)
git-svn-id: http://svn.freeswitch.org/svn/freeswitch/trunk@16875 d0543943-73ff-0310-b7d9-9358b9ac24b2

src/mod/endpoints/mod_skinny/skinny_protocol.c

index 9ce4ad6ec7d9cc94f60a2d4fe2c9081b8f9d3d48..10b7622d64e1b305ec13de31a8281c8f343bebed 100644 (file)
@@ -1445,7 +1445,7 @@ switch_status_t skinny_handle_port_message(listener_t *listener, skinny_message_
 
 struct button_template_helper {
        skinny_message_t *message;
-       int count[0xffff+1];
+       int count[SKINNY_BUTTON_UNDEFINED+1];
 };
 
 int skinny_handle_button_template_request_callback(void *pArg, int argc, char **argv, char **columnNames)
@@ -1457,6 +1457,9 @@ int skinny_handle_button_template_request_callback(void *pArg, int argc, char **
        uint32_t type = atoi(argv[2]);
        int i;
        
+       if(type > SKINNY_BUTTON_UNDEFINED) {
+               type = SKINNY_BUTTON_UNDEFINED;
+       }
        /* fill buttons between previous one and current one */
        for(i = message->data.button_template.button_count; i+1 < position; i++) {
                message->data.button_template.btn[i].instance_number = ++helper->count[SKINNY_BUTTON_UNDEFINED];