That's a funny one, building with optimization levels (with both gcc and
clang) caused open_mode to always be set to "ab", which worked.

This was spotted both with clang-analyzer, and by Jakob who reported a
segfault as he was using an un-optimized build.

Maybe we should build with -O0 in debug mode.

Signed-off-by: Xavier Chantry <[email protected]>
---
 lib/libalpm/dload.c |    3 ++-
 1 files changed, 2 insertions(+), 1 deletions(-)

diff --git a/lib/libalpm/dload.c b/lib/libalpm/dload.c
index d9e9488..4ebc868 100644
--- a/lib/libalpm/dload.c
+++ b/lib/libalpm/dload.c
@@ -159,7 +159,8 @@ static int curl_download_internal(const char *url, const 
char *localpath,
 {
        int ret = -1;
        FILE *localf = NULL;
-       const char *open_mode, *useragent;
+       const char *useragent;
+       const char *open_mode = "wb";
        char *destfile, *tempfile;
        char hostname[256]; /* RFC1123 states applications should support this 
length */
        struct stat st;
-- 
1.7.4.2


Reply via email to