# HG changeset patch # User Matti Hamalainen # Date 1526059636 -10800 # Node ID 4fd4e7a00db42ac2512dcad8abc59aedda8c438c # Parent 3265175b24d292c00e1e474071eb8a2e87afbd5a Fix handling of predefined DMGrowBuffer in dmC64EncodeGenericBMP(). diff -r 3265175b24d2 -r 4fd4e7a00db4 tools/lib64gfx.c --- a/tools/lib64gfx.c Fri May 11 20:18:14 2018 +0300 +++ b/tools/lib64gfx.c Fri May 11 20:27:16 2018 +0300 @@ -697,6 +697,7 @@ int dmC64EncodeGenericBMP(const BOOL allocate, DMGrowBuf *buf, const DMC64Image *img, const DMC64ImageFormat *fmt) { int res = DMERR_OK; + size_t boffs; if (img == NULL || fmt == NULL) return DMERR_NULLPTR; @@ -710,6 +711,8 @@ goto err; } + boffs = buf->len; + // Perform encoding for (int i = 0; i < D64_MAX_ENCDEC_OPS; i++) { @@ -735,7 +738,7 @@ } // Do we need to reallocate some more space? - chksize = op->offs + size; + chksize = op->offs + size + boffs; if (!dmGrowBufCheckGrow(buf, chksize)) { res = dmError(DMERR_MALLOC, @@ -748,7 +751,7 @@ buf->len = chksize; // Perform operation - Uint8 *dst = buf->data + op->offs; + Uint8 *dst = buf->data + boffs + op->offs; switch (op->type) { case DT_COLOR_RAM: memcpy(dst, img->color[op->bank], size); break;