diff options
author | Dirk Hohndel <dirk@hohndel.org> | 2013-03-03 17:53:43 -0800 |
---|---|---|
committer | Dirk Hohndel <dirk@hohndel.org> | 2013-03-03 20:18:23 -0800 |
commit | 01291929582ac573d7efd7fba3dbe061c9d70f9a (patch) | |
tree | cc836d5c2e40d26dd8f39dd5bad6c5193f2ef04d /statistics.c | |
parent | 93eeb03d67baac26da4153a163bf35567b106524 (diff) | |
download | subsurface-01291929582ac573d7efd7fba3dbe061c9d70f9a.tar.gz |
Try to capture some more potential buffer overflows caused by localization
A couple of these could clearly cause a crash just like the one fixed by
commit 00865f5a1e1a ("equipment.c: Fix potential buffer overflow in
size_data_funct()").
One would append user input to fixed length buffer without checking.
We were hardcoding the (correct) max path length in macos.c - replaced by
the actual OS constant.
But the vast majority are just extremely generous guesses how long
localized strings could possibly be.
Yes, this commit is likely leaning towards overkill. But we have now been
bitten by buffer overflow crashes twice that were caused by localization,
so I tried to go through all of the code and identify every possible
buffer that could be affected by this.
Signed-off-by: Dirk Hohndel <dirk@hohndel.org>
Diffstat (limited to 'statistics.c')
-rw-r--r-- | statistics.c | 6 |
1 files changed, 3 insertions, 3 deletions
diff --git a/statistics.c b/statistics.c index b6b618fbd..0ce8f6afe 100644 --- a/statistics.c +++ b/statistics.c @@ -192,7 +192,7 @@ static void init_tree() /* Add all the columns to the tree view */ for (i = 0; i < N_COLUMNS; ++i) { - char buf[80]; + char buf[256]; column = gtk_tree_view_column_new(); snprintf(buf, sizeof(buf), "%s\n%s", _(columnstop[i]), columnsbot[i]); gtk_tree_view_column_set_title(column, buf); @@ -500,7 +500,7 @@ void process_selected_dives(void) static void set_label(GtkWidget *w, const char *fmt, ...) { - char buf[80]; + char buf[256]; va_list args; va_start(args, fmt); @@ -531,7 +531,7 @@ static char *get_time_string(int seconds, int maxdays) * to dive data, but for consistency we don't. */ static void show_single_dive_stats(struct dive *dive) { - char buf[80]; + char buf[256]; double value; int decimals; const char *unit; |