#include <stdlib.h>
#include <string.h>
#include <assert.h>
+#include <inttypes.h>
#include <errno.h>
#include "pack.h"
unsigned char **new, *tmp;
size_t i;
+ if (height > SIZE_MAX / sizeof *new) {
+ lbx_error_raise(LBX_ENOMEM);
+ return NULL;
+ }
+
+ /* Ensure that there is at least one row in the framebuffer. */
+ if (height == 0 || width == 0)
+ width = height = 1;
+
tmp = calloc(height, width);
if (!tmp) {
lbx_error_raise(LBX_ENOMEM);
}
palette[i] = (struct lbx_colour) {
- .red = entry[1] << 2,
- .green = entry[2] << 2,
- .blue = entry[3] << 2,
+ .red = entry[1] & 0x3f,
+ .green = entry[2] & 0x3f,
+ .blue = entry[3] & 0x3f,
.active = 1,
};
}
}
palette[img->palstart + i] = (struct lbx_colour){
- .red = entry[1] << 2,
- .green = entry[2] << 2,
- .blue = entry[3] << 2,
+ .red = entry[1],
+ .green = entry[2],
+ .blue = entry[3],
.active = 1,
};
}