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
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, };
input.bdf
Description: input.bdf