Fix tools/bmp_logo.c using incorrect offset to pixel data

Patch by Andrew Dyer, 31 Jan 2005
master
Wolfgang Denk 20 years ago
parent fe7eb5d88b
commit fd4bb67bd2
  1. 3
      CHANGELOG
  2. 10
      tools/bmp_logo.c

@ -2,6 +2,9 @@
Changes for U-Boot 1.1.4: Changes for U-Boot 1.1.4:
====================================================================== ======================================================================
* Fix tools/bmp_logo.c using incorrect offset to pixel data
Patch by Andrew Dyer, 31 Jan 2005
* Add ARM946E cpu and core module targets; remap memory to 0x00000000 * Add ARM946E cpu and core module targets; remap memory to 0x00000000
Patch by Peter Pearse, 2 Feb 2005 Patch by Peter Pearse, 2 Feb 2005

@ -46,7 +46,7 @@ int main (int argc, char *argv[])
FILE *fp; FILE *fp;
bitmap_t bmp; bitmap_t bmp;
bitmap_t *b = &bmp; bitmap_t *b = &bmp;
uint16_t n_colors; uint16_t data_offset, n_colors;
if (argc < 2) { if (argc < 2) {
fprintf (stderr, "Usage: %s file\n", argv[0]); fprintf (stderr, "Usage: %s file\n", argv[0]);
@ -67,7 +67,9 @@ int main (int argc, char *argv[])
* read width and height of the image, and the number of colors used; * read width and height of the image, and the number of colors used;
* ignore the rest * ignore the rest
*/ */
skip_bytes (fp, 16); skip_bytes (fp, 8);
fread (&data_offset, sizeof (uint16_t), 1, fp);
skip_bytes (fp, 6);
fread (&b->width, sizeof (uint16_t), 1, fp); fread (&b->width, sizeof (uint16_t), 1, fp);
skip_bytes (fp, 2); skip_bytes (fp, 2);
fread (&b->height, sizeof (uint16_t), 1, fp); fread (&b->height, sizeof (uint16_t), 1, fp);
@ -78,6 +80,7 @@ int main (int argc, char *argv[])
/* /*
* Repair endianess. * Repair endianess.
*/ */
data_offset = le_short(data_offset);
b->width = le_short(b->width); b->width = le_short(b->width);
b->height = le_short(b->height); b->height = le_short(b->height);
n_colors = le_short(n_colors); n_colors = le_short(n_colors);
@ -129,6 +132,9 @@ int main (int argc, char *argv[])
); );
} }
/* seek to offset indicated by file header */
fseek(fp, (long)data_offset, SEEK_SET);
/* read the bitmap; leave room for default color map */ /* read the bitmap; leave room for default color map */
printf ("\n"); printf ("\n");
printf ("};\n"); printf ("};\n");

Loading…
Cancel
Save