+ if (mode == MODE_GEN_BMP) {
+ /* copy full bmp file */
+ fseek(fp, 0L, SEEK_END);
+ size = ftell(fp);
+ fseek(fp, 0L, SEEK_SET);
+ } else {
+ fseek(fp, (long)data_offset, SEEK_SET);
+ }
+
+ /* allocate memory */
+ b->data = (uint8_t *)malloc(size);
+ if (!b->data)
+ error("Error allocating memory for file", fp);