diff
+ static inline int safe_write(uint8_t *dest, size_t dest_size, size_t offset, const uint8_t *src, size_t n) {
+     if (offset + n > dest_size) return -1;
+     memcpy(dest + offset, src, n);
+     return 0;
+ }

// In the main function:
-1405             DecodeBase64Block(dptr, b64);
+1405             uint8_t decoded[3];
+                 DecodeBase64Block(decoded, b64);
+                 if (safe_write(dest, dest_size, *decoded_bytes, decoded, numDecoded_blk) < 0) {
+                     ecode = BASE64_ECODE_BUF;
+                     break;
+                 }
+                 *decoded_bytes += numDecoded_blk;
