Package: libbogl-dev
Version: 0.1.18-9
Tags: patch

The tool bdftobogl generates incorrect code because a strtol() overflows if hex 
number is greater than 0x7FFFFFFF. strtoul() should be used instead.
The numbers under conversion can be greater than 0x7FFFFFFF since they are hex 
numbers representing the BDF glyph bitmap.

Affected source file: bogl-font.c

Attached:
 * proposed patch
 * input.dbf: a BDF font containing a single 'W' character, this can be used as 
test case
 * output, produced using input.dbf, of both unpatched and patched bdftobogl

Regards,
Luca

Attachment: patch.diff
Description: patch.diff

/* Generated by bdftobogl.  Do not modify! */
#include "bogl.h"

/* Offsets into index. */
static int ___font_txt_offset[256] = {
  2, /* (0x0) */
  2, /* (0x1) */
  2, /* (0x2) */
  2, /* (0x3) */
  2, /* (0x4) */
  2, /* (0x5) */
  2, /* (0x6) */
  2, /* (0x7) */
  2, /* (0x8) */
  2, /* (0x9) */
  2, /* (0xa) */
  2, /* (0xb) */
  2, /* (0xc) */
  2, /* (0xd) */
  2, /* (0xe) */
  2, /* (0xf) */
  2, /* (0x10) */
  2, /* (0x11) */
  2, /* (0x12) */
  2, /* (0x13) */
  2, /* (0x14) */
  2, /* (0x15) */
  2, /* (0x16) */
  2, /* (0x17) */
  2, /* (0x18) */
  2, /* (0x19) */
  2, /* (0x1a) */
  2, /* (0x1b) */
  2, /* (0x1c) */
  2, /* (0x1d) */
  2, /* (0x1e) */
  2, /* (0x1f) */
  2, /* (0x20) */
  2, /* (0x21) */
  2, /* (0x22) */
  2, /* (0x23) */
  2, /* (0x24) */
  2, /* (0x25) */
  2, /* (0x26) */
  2, /* (0x27) */
  2, /* (0x28) */
  2, /* (0x29) */
  2, /* (0x2a) */
  2, /* (0x2b) */
  2, /* (0x2c) */
  2, /* (0x2d) */
  2, /* (0x2e) */
  2, /* (0x2f) */
  2, /* (0x30) */
  2, /* (0x31) */
  2, /* (0x32) */
  2, /* (0x33) */
  2, /* (0x34) */
  2, /* (0x35) */
  2, /* (0x36) */
  2, /* (0x37) */
  2, /* (0x38) */
  2, /* (0x39) */
  2, /* (0x3a) */
  2, /* (0x3b) */
  2, /* (0x3c) */
  2, /* (0x3d) */
  2, /* (0x3e) */
  2, /* (0x3f) */
  2, /* (0x40) */
  2, /* (0x41) */
  2, /* (0x42) */
  2, /* (0x43) */
  2, /* (0x44) */
  2, /* (0x45) */
  2, /* (0x46) */
  2, /* (0x47) */
  2, /* (0x48) */
  2, /* (0x49) */
  2, /* (0x4a) */
  2, /* (0x4b) */
  2, /* (0x4c) */
  2, /* (0x4d) */
  2, /* (0x4e) */
  2, /* (0x4f) */
  2, /* (0x50) */
  2, /* (0x51) */
  2, /* (0x52) */
  2, /* (0x53) */
  2, /* (0x54) */
  2, /* (0x55) */
  2, /* (0x56) */
  0, /* (0x57) */
  2, /* (0x58) */
  2, /* (0x59) */
  2, /* (0x5a) */
  2, /* (0x5b) */
  2, /* (0x5c) */
  2, /* (0x5d) */
  2, /* (0x5e) */
  2, /* (0x5f) */
  2, /* (0x60) */
  2, /* (0x61) */
  2, /* (0x62) */
  2, /* (0x63) */
  2, /* (0x64) */
  2, /* (0x65) */
  2, /* (0x66) */
  2, /* (0x67) */
  2, /* (0x68) */
  2, /* (0x69) */
  2, /* (0x6a) */
  2, /* (0x6b) */
  2, /* (0x6c) */
  2, /* (0x6d) */
  2, /* (0x6e) */
  2, /* (0x6f) */
  2, /* (0x70) */
  2, /* (0x71) */
  2, /* (0x72) */
  2, /* (0x73) */
  2, /* (0x74) */
  2, /* (0x75) */
  2, /* (0x76) */
  2, /* (0x77) */
  2, /* (0x78) */
  2, /* (0x79) */
  2, /* (0x7a) */
  2, /* (0x7b) */
  2, /* (0x7c) */
  2, /* (0x7d) */
  2, /* (0x7e) */
  2, /* (0x7f) */
  2, /* (0x80) */
  2, /* (0x81) */
  2, /* (0x82) */
  2, /* (0x83) */
  2, /* (0x84) */
  2, /* (0x85) */
  2, /* (0x86) */
  2, /* (0x87) */
  2, /* (0x88) */
  2, /* (0x89) */
  2, /* (0x8a) */
  2, /* (0x8b) */
  2, /* (0x8c) */
  2, /* (0x8d) */
  2, /* (0x8e) */
  2, /* (0x8f) */
  2, /* (0x90) */
  2, /* (0x91) */
  2, /* (0x92) */
  2, /* (0x93) */
  2, /* (0x94) */
  2, /* (0x95) */
  2, /* (0x96) */
  2, /* (0x97) */
  2, /* (0x98) */
  2, /* (0x99) */
  2, /* (0x9a) */
  2, /* (0x9b) */
  2, /* (0x9c) */
  2, /* (0x9d) */
  2, /* (0x9e) */
  2, /* (0x9f) */
  2, /* (0xa0) */
  2, /* (0xa1) */
  2, /* (0xa2) */
  2, /* (0xa3) */
  2, /* (0xa4) */
  2, /* (0xa5) */
  2, /* (0xa6) */
  2, /* (0xa7) */
  2, /* (0xa8) */
  2, /* (0xa9) */
  2, /* (0xaa) */
  2, /* (0xab) */
  2, /* (0xac) */
  2, /* (0xad) */
  2, /* (0xae) */
  2, /* (0xaf) */
  2, /* (0xb0) */
  2, /* (0xb1) */
  2, /* (0xb2) */
  2, /* (0xb3) */
  2, /* (0xb4) */
  2, /* (0xb5) */
  2, /* (0xb6) */
  2, /* (0xb7) */
  2, /* (0xb8) */
  2, /* (0xb9) */
  2, /* (0xba) */
  2, /* (0xbb) */
  2, /* (0xbc) */
  2, /* (0xbd) */
  2, /* (0xbe) */
  2, /* (0xbf) */
  2, /* (0xc0) */
  2, /* (0xc1) */
  2, /* (0xc2) */
  2, /* (0xc3) */
  2, /* (0xc4) */
  2, /* (0xc5) */
  2, /* (0xc6) */
  2, /* (0xc7) */
  2, /* (0xc8) */
  2, /* (0xc9) */
  2, /* (0xca) */
  2, /* (0xcb) */
  2, /* (0xcc) */
  2, /* (0xcd) */
  2, /* (0xce) */
  2, /* (0xcf) */
  2, /* (0xd0) */
  2, /* (0xd1) */
  2, /* (0xd2) */
  2, /* (0xd3) */
  2, /* (0xd4) */
  2, /* (0xd5) */
  2, /* (0xd6) */
  2, /* (0xd7) */
  2, /* (0xd8) */
  2, /* (0xd9) */
  2, /* (0xda) */
  2, /* (0xdb) */
  2, /* (0xdc) */
  2, /* (0xdd) */
  2, /* (0xde) */
  2, /* (0xdf) */
  2, /* (0xe0) */
  2, /* (0xe1) */
  2, /* (0xe2) */
  2, /* (0xe3) */
  2, /* (0xe4) */
  2, /* (0xe5) */
  2, /* (0xe6) */
  2, /* (0xe7) */
  2, /* (0xe8) */
  2, /* (0xe9) */
  2, /* (0xea) */
  2, /* (0xeb) */
  2, /* (0xec) */
  2, /* (0xed) */
  2, /* (0xee) */
  2, /* (0xef) */
  2, /* (0xf0) */
  2, /* (0xf1) */
  2, /* (0xf2) */
  2, /* (0xf3) */
  2, /* (0xf4) */
  2, /* (0xf5) */
  2, /* (0xf6) */
  2, /* (0xf7) */
  2, /* (0xf8) */
  2, /* (0xf9) */
  2, /* (0xfa) */
  2, /* (0xfb) */
  2, /* (0xfc) */
  2, /* (0xfd) */
  2, /* (0xfe) */
  2, /* (0xff) */
};

/* Index into content data. */
static int ___font_txt_index[3] = {
  0x1d, 0,
  0,
};

/* Font character content data. */
static u_int32_t ___font_txt_content[] = {

/* 0: character W (0x57), width 29 */
/* +-----------------------------+
   |                             |
   |                             |
   |                             |
   |                             |
   |                             |
   |                             |
   | ****************************|
   | ****************************|
   | ****************************|
   | ***        ** **        *** |
   | ***        ** **        *** |
   | ***       *** ***       *** |
   |  ***      *** ***      **** |
   |  ***      *** ***      ***  |
   |  ***      **   **      ***  |
   |  ***     ***   ***     ***  |
   |   ***    ***   ***     ***  |
   |   ***    ***    **    ***   |
   |   ***    **     **    ***   |
   |   ****  ***     ***   ***   |
   |    ***  ***     ***   **    |
   |    ***  ***      **  ***    |
   |    ***  **       *** ***    |
   |     ** ***       *** ***    |
   |     ******       *** **     |
   |     ******        ** **     |
   |     *****         ** **     |
   |      ****         *****     |
   |      ****          ***      |
   |      ****          ***      |
   |                             |
   |                             |
   |                             |
   |                             |
   |                             |
   |                             |
   |                             |
   +-----------------------------+ */
0x00000000,
0x00000000,
0x00000000,
0x00000000,
0x00000000,
0x00000000,
0x7fffffff,
0x7fffffff,
0x7fffffff,
0x700d8070,
0x700d8070,
0x701dc070,
0x381dc0f0,
0x381dc0e0,
0x3818c0e0,
0x3838e0e0,
0x1c38e0e0,
0x1c3861c0,
0x1c3061c0,
0x1e7071c0,
0x0e707180,
0x0e703380,
0x0e603b80,
0x06e03b80,
0x07e03b00,
0x07e01b00,
0x07c01b00,
0x03c01f00,
0x03c00e00,
0x03c00e00,
0x00000000,
0x00000000,
0x00000000,
0x00000000,
0x00000000,
0x00000000,
0x00000000,

};

/* Exported structure definition. */
const struct bogl_font font___font_txt = {
  "__font_txt",
  37,
  0xff,
  ___font_txt_offset,
  ___font_txt_index,
  ___font_txt_content,
};
/* Generated by bdftobogl.  Do not modify! */
#include "bogl.h"

/* Offsets into index. */
static int ___font_txt_offset[256] = {
  2, /* (0x0) */
  2, /* (0x1) */
  2, /* (0x2) */
  2, /* (0x3) */
  2, /* (0x4) */
  2, /* (0x5) */
  2, /* (0x6) */
  2, /* (0x7) */
  2, /* (0x8) */
  2, /* (0x9) */
  2, /* (0xa) */
  2, /* (0xb) */
  2, /* (0xc) */
  2, /* (0xd) */
  2, /* (0xe) */
  2, /* (0xf) */
  2, /* (0x10) */
  2, /* (0x11) */
  2, /* (0x12) */
  2, /* (0x13) */
  2, /* (0x14) */
  2, /* (0x15) */
  2, /* (0x16) */
  2, /* (0x17) */
  2, /* (0x18) */
  2, /* (0x19) */
  2, /* (0x1a) */
  2, /* (0x1b) */
  2, /* (0x1c) */
  2, /* (0x1d) */
  2, /* (0x1e) */
  2, /* (0x1f) */
  2, /* (0x20) */
  2, /* (0x21) */
  2, /* (0x22) */
  2, /* (0x23) */
  2, /* (0x24) */
  2, /* (0x25) */
  2, /* (0x26) */
  2, /* (0x27) */
  2, /* (0x28) */
  2, /* (0x29) */
  2, /* (0x2a) */
  2, /* (0x2b) */
  2, /* (0x2c) */
  2, /* (0x2d) */
  2, /* (0x2e) */
  2, /* (0x2f) */
  2, /* (0x30) */
  2, /* (0x31) */
  2, /* (0x32) */
  2, /* (0x33) */
  2, /* (0x34) */
  2, /* (0x35) */
  2, /* (0x36) */
  2, /* (0x37) */
  2, /* (0x38) */
  2, /* (0x39) */
  2, /* (0x3a) */
  2, /* (0x3b) */
  2, /* (0x3c) */
  2, /* (0x3d) */
  2, /* (0x3e) */
  2, /* (0x3f) */
  2, /* (0x40) */
  2, /* (0x41) */
  2, /* (0x42) */
  2, /* (0x43) */
  2, /* (0x44) */
  2, /* (0x45) */
  2, /* (0x46) */
  2, /* (0x47) */
  2, /* (0x48) */
  2, /* (0x49) */
  2, /* (0x4a) */
  2, /* (0x4b) */
  2, /* (0x4c) */
  2, /* (0x4d) */
  2, /* (0x4e) */
  2, /* (0x4f) */
  2, /* (0x50) */
  2, /* (0x51) */
  2, /* (0x52) */
  2, /* (0x53) */
  2, /* (0x54) */
  2, /* (0x55) */
  2, /* (0x56) */
  0, /* (0x57) */
  2, /* (0x58) */
  2, /* (0x59) */
  2, /* (0x5a) */
  2, /* (0x5b) */
  2, /* (0x5c) */
  2, /* (0x5d) */
  2, /* (0x5e) */
  2, /* (0x5f) */
  2, /* (0x60) */
  2, /* (0x61) */
  2, /* (0x62) */
  2, /* (0x63) */
  2, /* (0x64) */
  2, /* (0x65) */
  2, /* (0x66) */
  2, /* (0x67) */
  2, /* (0x68) */
  2, /* (0x69) */
  2, /* (0x6a) */
  2, /* (0x6b) */
  2, /* (0x6c) */
  2, /* (0x6d) */
  2, /* (0x6e) */
  2, /* (0x6f) */
  2, /* (0x70) */
  2, /* (0x71) */
  2, /* (0x72) */
  2, /* (0x73) */
  2, /* (0x74) */
  2, /* (0x75) */
  2, /* (0x76) */
  2, /* (0x77) */
  2, /* (0x78) */
  2, /* (0x79) */
  2, /* (0x7a) */
  2, /* (0x7b) */
  2, /* (0x7c) */
  2, /* (0x7d) */
  2, /* (0x7e) */
  2, /* (0x7f) */
  2, /* (0x80) */
  2, /* (0x81) */
  2, /* (0x82) */
  2, /* (0x83) */
  2, /* (0x84) */
  2, /* (0x85) */
  2, /* (0x86) */
  2, /* (0x87) */
  2, /* (0x88) */
  2, /* (0x89) */
  2, /* (0x8a) */
  2, /* (0x8b) */
  2, /* (0x8c) */
  2, /* (0x8d) */
  2, /* (0x8e) */
  2, /* (0x8f) */
  2, /* (0x90) */
  2, /* (0x91) */
  2, /* (0x92) */
  2, /* (0x93) */
  2, /* (0x94) */
  2, /* (0x95) */
  2, /* (0x96) */
  2, /* (0x97) */
  2, /* (0x98) */
  2, /* (0x99) */
  2, /* (0x9a) */
  2, /* (0x9b) */
  2, /* (0x9c) */
  2, /* (0x9d) */
  2, /* (0x9e) */
  2, /* (0x9f) */
  2, /* (0xa0) */
  2, /* (0xa1) */
  2, /* (0xa2) */
  2, /* (0xa3) */
  2, /* (0xa4) */
  2, /* (0xa5) */
  2, /* (0xa6) */
  2, /* (0xa7) */
  2, /* (0xa8) */
  2, /* (0xa9) */
  2, /* (0xaa) */
  2, /* (0xab) */
  2, /* (0xac) */
  2, /* (0xad) */
  2, /* (0xae) */
  2, /* (0xaf) */
  2, /* (0xb0) */
  2, /* (0xb1) */
  2, /* (0xb2) */
  2, /* (0xb3) */
  2, /* (0xb4) */
  2, /* (0xb5) */
  2, /* (0xb6) */
  2, /* (0xb7) */
  2, /* (0xb8) */
  2, /* (0xb9) */
  2, /* (0xba) */
  2, /* (0xbb) */
  2, /* (0xbc) */
  2, /* (0xbd) */
  2, /* (0xbe) */
  2, /* (0xbf) */
  2, /* (0xc0) */
  2, /* (0xc1) */
  2, /* (0xc2) */
  2, /* (0xc3) */
  2, /* (0xc4) */
  2, /* (0xc5) */
  2, /* (0xc6) */
  2, /* (0xc7) */
  2, /* (0xc8) */
  2, /* (0xc9) */
  2, /* (0xca) */
  2, /* (0xcb) */
  2, /* (0xcc) */
  2, /* (0xcd) */
  2, /* (0xce) */
  2, /* (0xcf) */
  2, /* (0xd0) */
  2, /* (0xd1) */
  2, /* (0xd2) */
  2, /* (0xd3) */
  2, /* (0xd4) */
  2, /* (0xd5) */
  2, /* (0xd6) */
  2, /* (0xd7) */
  2, /* (0xd8) */
  2, /* (0xd9) */
  2, /* (0xda) */
  2, /* (0xdb) */
  2, /* (0xdc) */
  2, /* (0xdd) */
  2, /* (0xde) */
  2, /* (0xdf) */
  2, /* (0xe0) */
  2, /* (0xe1) */
  2, /* (0xe2) */
  2, /* (0xe3) */
  2, /* (0xe4) */
  2, /* (0xe5) */
  2, /* (0xe6) */
  2, /* (0xe7) */
  2, /* (0xe8) */
  2, /* (0xe9) */
  2, /* (0xea) */
  2, /* (0xeb) */
  2, /* (0xec) */
  2, /* (0xed) */
  2, /* (0xee) */
  2, /* (0xef) */
  2, /* (0xf0) */
  2, /* (0xf1) */
  2, /* (0xf2) */
  2, /* (0xf3) */
  2, /* (0xf4) */
  2, /* (0xf5) */
  2, /* (0xf6) */
  2, /* (0xf7) */
  2, /* (0xf8) */
  2, /* (0xf9) */
  2, /* (0xfa) */
  2, /* (0xfb) */
  2, /* (0xfc) */
  2, /* (0xfd) */
  2, /* (0xfe) */
  2, /* (0xff) */
};

/* Index into content data. */
static int ___font_txt_index[3] = {
  0x1d, 0,
  0,
};

/* Font character content data. */
static u_int32_t ___font_txt_content[] = {

/* 0: character W (0x57), width 29 */
/* +-----------------------------+
   |                             |
   |                             |
   |                             |
   |                             |
   |                             |
   |                             |
   |***          ***          ***|
   |***          ****         ***|
   |****        *****        ****|
   | ***        ** **        *** |
   | ***        ** **        *** |
   | ***       *** ***       *** |
   |  ***      *** ***      **** |
   |  ***      *** ***      ***  |
   |  ***      **   **      ***  |
   |  ***     ***   ***     ***  |
   |   ***    ***   ***     ***  |
   |   ***    ***    **    ***   |
   |   ***    **     **    ***   |
   |   ****  ***     ***   ***   |
   |    ***  ***     ***   **    |
   |    ***  ***      **  ***    |
   |    ***  **       *** ***    |
   |     ** ***       *** ***    |
   |     ******       *** **     |
   |     ******        ** **     |
   |     *****         ** **     |
   |      ****         *****     |
   |      ****          ***      |
   |      ****          ***      |
   |                             |
   |                             |
   |                             |
   |                             |
   |                             |
   |                             |
   |                             |
   +-----------------------------+ */
0x00000000,
0x00000000,
0x00000000,
0x00000000,
0x00000000,
0x00000000,
0xe0070038,
0xe0078038,
0xf00f8078,
0x700d8070,
0x700d8070,
0x701dc070,
0x381dc0f0,
0x381dc0e0,
0x3818c0e0,
0x3838e0e0,
0x1c38e0e0,
0x1c3861c0,
0x1c3061c0,
0x1e7071c0,
0x0e707180,
0x0e703380,
0x0e603b80,
0x06e03b80,
0x07e03b00,
0x07e01b00,
0x07c01b00,
0x03c01f00,
0x03c00e00,
0x03c00e00,
0x00000000,
0x00000000,
0x00000000,
0x00000000,
0x00000000,
0x00000000,
0x00000000,

};

/* Exported structure definition. */
const struct bogl_font font___font_txt = {
  "__font_txt",
  37,
  0xff,
  ___font_txt_offset,
  ___font_txt_index,
  ___font_txt_content,
};

Attachment: input.bdf
Description: input.bdf

Reply via email to