From a064eec5ebf3d05863f5ce6a7e9984588f242382 Mon Sep 17 00:00:00 2001 From: Allanis Date: Thu, 23 May 2013 21:26:05 +0100 Subject: [PATCH] [Fix] Minor decode bug in base64 --- src/base64.c | 4 +++- src/mission.c | 4 ++-- 2 files changed, 5 insertions(+), 3 deletions(-) diff --git a/src/base64.c b/src/base64.c index e39d53d..726bce1 100644 --- a/src/base64.c +++ b/src/base64.c @@ -207,10 +207,12 @@ char* base64_decode(size_t* len, char* src, size_t sz) { r = malloc(c * sizeof(char)); // Create a clean version of the text. + pad = 0; dat = malloc(sz * sizeof(char)); j = 0; - pad = 0; for(i = 0; i < sz; i++) { + if(src[i] == '=') + pad++; if(dec_valid(src[i])) dat[j++] = src[i]; } diff --git a/src/mission.c b/src/mission.c index 6786a08..e56ac2f 100644 --- a/src/mission.c +++ b/src/mission.c @@ -450,7 +450,7 @@ static int mission_writeLua(lua_State* L, const void* p, size_t sz, void* ud) { buf = (MBuf*)ud; i = buf->ndata * buf->len + sz - buf->mdata*buf->len; - if(i = 0) { + if(i > 0) { // Need more memory. buf->mdata += (i / (buf->len*buf->alloc) + 1) * buf->len * buf->alloc; buf->data = realloc(buf->data, buf->mdata*buf->len); @@ -489,7 +489,7 @@ int missions_save(xmlTextWriterPtr writer) { xmlw_startElem(writer, "lua"); buf = mbuf_create(1, 128); lua_pushvalue(player_missions[i].L, LUA_GLOBALSINDEX); - //pluto_persist(player_missions[i].L, mission_writeLua, buf); + pluto_persist(player_missions[i].L, mission_writeLua, buf); data = base64_encode(&sz, buf->data, buf->ndata); mbuf_free(buf); xmlw_raw(writer, data, sz);