#define HTTP_MAX_APPEND_HEADERS 10
#define HTTP_DEFAULT_MAX_BYTES 64000
+#ifndef MOD_CURL_MAX_ARGS
+#define MOD_CURL_MAX_ARGS 30
+#endif
+
static struct {
switch_memory_pool_t *pool;
switch_event_node_t *node;
{
switch_status_t status = SWITCH_STATUS_SUCCESS;
- char *argv[10] = { 0 };
+ char *argv[MOD_CURL_MAX_ARGS + 1] = { 0 };
int argc;
char *mydata = NULL;
if ((argc = switch_separate_string(mydata, ' ', argv, (sizeof(argv) / sizeof(argv[0]))))) {
if (argc == 0) {
switch_goto_status(SWITCH_STATUS_SUCCESS, usage);
+ } else if (argc >= MOD_CURL_MAX_ARGS) {
+ switch_log_printf(SWITCH_CHANNEL_SESSION_LOG(session), SWITCH_LOG_ERROR, "Max args exceeded: %d\n", MOD_CURL_MAX_ARGS);
+ switch_goto_status(SWITCH_STATUS_FALSE, done);
}
url = switch_core_strdup(pool, argv[0]);
SWITCH_STANDARD_API(curl_function)
{
switch_status_t status;
- char *argv[10] = { 0 };
+ char *argv[MOD_CURL_MAX_ARGS + 1] = { 0 };
int argc;
char *mydata = NULL;
char *url = NULL;
if ((argc = switch_separate_string(mydata, ' ', argv, (sizeof(argv) / sizeof(argv[0]))))) {
if (argc < 1) {
switch_goto_status(SWITCH_STATUS_SUCCESS, usage);
+ } else if (argc >= MOD_CURL_MAX_ARGS) {
+ switch_log_printf(SWITCH_CHANNEL_SESSION_LOG(session), SWITCH_LOG_ERROR, "Max args exceeded: %d\n", MOD_CURL_MAX_ARGS);
+ switch_goto_status(SWITCH_STATUS_FALSE, done);
}
url = switch_core_strdup(pool, argv[0]);