From f60db466ed56dff50365084240e18c8eccaf985d Mon Sep 17 00:00:00 2001 From: tinloaf Date: Mon, 6 Apr 2009 12:12:49 +0000 Subject: [PATCH] Fix:Core:Allocate large buffer on the heap instead of the stack git-svn-id: https://navit.svn.sourceforge.net/svnroot/navit/trunk@2187 ffa7fe5e-494d-0410-b361-a75ebd5db220 --- navit/navit/file.c | 6 +++++- 1 file changed, 5 insertions(+), 1 deletion(-) diff --git a/navit/navit/file.c b/navit/navit/file.c index 3523554..890dcbf 100644 --- a/navit/navit/file.c +++ b/navit/navit/file.c @@ -219,7 +219,7 @@ unsigned char * file_data_read_compressed(struct file *file, long long offset, int size, int size_uncomp) { void *ret; - char buffer[size]; + char *buffer = 0; uLongf destLen=size_uncomp; if (file_cache) { @@ -231,6 +231,8 @@ file_data_read_compressed(struct file *file, long long offset, int size, int siz } else ret=g_malloc(size_uncomp); lseek(file->fd, offset, SEEK_SET); + + buffer = (char *)g_malloc(size); if (read(file->fd, buffer, size) != size) { g_free(ret); ret=NULL; @@ -241,6 +243,8 @@ file_data_read_compressed(struct file *file, long long offset, int size, int siz ret=NULL; } } + g_free(buffer); + return ret; } -- 2.7.4