diff options
author | David Robillard <d@drobilla.net> | 2020-03-17 12:53:15 +0100 |
---|---|---|
committer | David Robillard <d@drobilla.net> | 2020-03-17 12:53:15 +0100 |
commit | 2edac903ad52c66340e8a68822d1880ae3007d4a (patch) | |
tree | c9b4858fcd33148cbb5f305f96260bc3c631f9e2 /src/jalv_console.c | |
parent | 74c4c4d9badcd6ffc452baf8bea5530f44e95b4d (diff) | |
download | jalv-2edac903ad52c66340e8a68822d1880ae3007d4a.tar.gz jalv-2edac903ad52c66340e8a68822d1880ae3007d4a.tar.bz2 jalv-2edac903ad52c66340e8a68822d1880ae3007d4a.zip |
Fix buffer overrun with very long symbols in commands
Diffstat (limited to 'src/jalv_console.c')
-rw-r--r-- | src/jalv_console.c | 8 |
1 files changed, 4 insertions, 4 deletions
diff --git a/src/jalv_console.c b/src/jalv_console.c index 7d11714..06eaf99 100644 --- a/src/jalv_console.c +++ b/src/jalv_console.c @@ -155,7 +155,7 @@ jalv_print_preset(Jalv* jalv, static void jalv_process_command(Jalv* jalv, const char* cmd) { - char sym[64]; + char sym[1024]; uint32_t index; float value; if (!strncmp(cmd, "help", 4)) { @@ -172,7 +172,7 @@ jalv_process_command(Jalv* jalv, const char* cmd) } else if (strcmp(cmd, "presets\n") == 0) { jalv_unload_presets(jalv); jalv_load_presets(jalv, jalv_print_preset, NULL); - } else if (sscanf(cmd, "preset %[a-zA-Z0-9_:/-.#]\n", sym) == 1) { + } else if (sscanf(cmd, "preset %1023[a-zA-Z0-9_:/-.#]\n", sym) == 1) { LilvNode* preset = lilv_new_uri(jalv->world, sym); jalv_apply_preset(jalv, preset); lilv_node_free(preset); @@ -188,8 +188,8 @@ jalv_process_command(Jalv* jalv, const char* cmd) } else { fprintf(stderr, "error: port index out of range\n"); } - } else if (sscanf(cmd, "set %[a-zA-Z0-9_] %f", sym, &value) == 2 || - sscanf(cmd, "%[a-zA-Z0-9_] = %f", sym, &value) == 2) { + } else if (sscanf(cmd, "set %1023[a-zA-Z0-9_] %f", sym, &value) == 2 || + sscanf(cmd, "%1023[a-zA-Z0-9_] = %f", sym, &value) == 2) { struct Port* port = NULL; for (uint32_t i = 0; i < jalv->num_ports; ++i) { struct Port* p = &jalv->ports[i]; |