r9580 - in packages/branches/xmahjongg/etch: . debian debian/patches
Peter Pentchev
roam-guest at alioth.debian.org
Tue Apr 14 11:28:16 UTC 2009
Author: roam-guest
Date: 2009-04-14 11:28:16 +0000 (Tue, 14 Apr 2009)
New Revision: 9580
Added:
packages/branches/xmahjongg/etch/debian/patches/04-gif-read-errors.patch
Modified:
packages/branches/xmahjongg/etch/
packages/branches/xmahjongg/etch/debian/changelog
packages/branches/xmahjongg/etch/debian/patches/03-compiler-warnings.patch
packages/branches/xmahjongg/etch/debian/patches/series
packages/branches/xmahjongg/etch/debian/rules
Log:
Partially merge lenny/ rev. 9574: since there is no hardening wrapper in
Etch, just fix the warnings :)
Property changes on: packages/branches/xmahjongg/etch
___________________________________________________________________
Modified: svnmerge-integrated
- /packages/branches/xmahjongg/lenny:1-9567,9570-9573
+ /packages/branches/xmahjongg/lenny:1-9567,9570-9574
Modified: packages/branches/xmahjongg/etch/debian/changelog
===================================================================
--- packages/branches/xmahjongg/etch/debian/changelog 2009-04-14 11:23:12 UTC (rev 9579)
+++ packages/branches/xmahjongg/etch/debian/changelog 2009-04-14 11:28:16 UTC (rev 9580)
@@ -2,8 +2,6 @@
* New maintainer. Closes: #519355
* TODO:
- - fix a couple of compiler warnings, build with more warning flags
- - build with the hardening wrapper
- add a desktop file to fix #478955
* Use quilt for patch management.
* Regenerate the autotools-related files.
@@ -27,6 +25,7 @@
- make the configure script produce the same result with or without
the -Werror flag at the warnings level used
- fix a couple of const char * warnings
+ - teach the GIF library and the layout parser about read errors
-- Peter Pentchev <roam at ringlet.net> Tue, 31 Mar 2009 17:19:37 +0300
Modified: packages/branches/xmahjongg/etch/debian/patches/03-compiler-warnings.patch
===================================================================
--- packages/branches/xmahjongg/etch/debian/patches/03-compiler-warnings.patch 2009-04-14 11:23:12 UTC (rev 9579)
+++ packages/branches/xmahjongg/etch/debian/patches/03-compiler-warnings.patch 2009-04-14 11:28:16 UTC (rev 9580)
@@ -1,5 +1,6 @@
Make the configure script produce the same result with or without -Werror.
Fix a couple of const char * warnings.
+Teach the the layout parser about read errors.
--- a/configure
+++ b/configure
@@ -52,3 +53,35 @@
XResizeWindow(display, window, size_hint->width, size_hint->height);
XSetWMProperties(display, window, &window_name_prop, &icon_name_prop,
+--- a/src/game.cc
++++ b/src/game.cc
+@@ -497,7 +497,8 @@
+ char buffer[BUFSIZ];
+ while (!feof(f)) {
+ buffer[0] = 0;
+- fgets(buffer, BUFSIZ, f);
++ if (fgets(buffer, BUFSIZ, f) == NULL)
++ return false;
+ int r, c, l;
+ if (sscanf(buffer, " %d %d %d", &r, &c, &l) == 3)
+ if (!place_tile(r+2, c+2, l))
+@@ -513,7 +514,8 @@
+
+ // check for `kmahjongg-layout'
+ buf[0] = 0;
+- fgets(buf, BUFSIZ, f);
++ if (fgets(buf, BUFSIZ, f) == NULL)
++ return false;
+ if (memcmp(buf, "kmahjongg-layout-v1", 19) != 0) {
+ fprintf(stderr, "not a kmahjongg layout file\n");
+ return false;
+@@ -524,7 +526,8 @@
+ while (!feof(f) && l < TILE_LEVS - 1) {
+ for (int r = 0; r < 16 && !feof(f); r++) {
+ buf[0] = 0;
+- fgets(buf, BUFSIZ, f);
++ if (fgets(buf, BUFSIZ, f) == NULL)
++ return false;
+ for (int c = 0; c < TILE_COLS - 3 && buf[c] && !isspace(buf[c]); c++)
+ if (buf[c] == '1') {
+ if (!place_tile(r + 2, c + 2, l))
Copied: packages/branches/xmahjongg/etch/debian/patches/04-gif-read-errors.patch (from rev 9574, packages/branches/xmahjongg/lenny/debian/patches/04-gif-read-errors.patch)
===================================================================
--- packages/branches/xmahjongg/etch/debian/patches/04-gif-read-errors.patch (rev 0)
+++ packages/branches/xmahjongg/etch/debian/patches/04-gif-read-errors.patch 2009-04-14 11:28:16 UTC (rev 9580)
@@ -0,0 +1,155 @@
+Teach the GIF library about read errors.
+
+--- a/liblcdf/gifread.c
++++ b/liblcdf/gifread.c
+@@ -57,7 +57,7 @@
+ int is_record;
+ int is_eoi;
+ uint8_t (*byte_getter)(struct Gif_Reader *);
+- void (*block_getter)(uint8_t *, uint32_t, struct Gif_Reader *);
++ uint32_t (*block_getter)(uint8_t *, uint32_t, struct Gif_Reader *);
+ uint32_t (*offseter)(struct Gif_Reader *);
+ int (*eofer)(struct Gif_Reader *);
+
+@@ -86,10 +86,10 @@
+ return i == EOF ? 0 : (uint8_t)i;
+ }
+
+-static void
++uint32_t
+ file_block_getter(uint8_t *p, uint32_t s, Gif_Reader *grr)
+ {
+- fread(p, 1, s, grr->f);
++ return fread(p, 1, s, grr->f) == s;
+ }
+
+ static uint32_t
+@@ -117,12 +117,16 @@
+ return grr->w ? (grr->w--, *grr->v++) : 0;
+ }
+
+-static void
++static uint32_t
+ record_block_getter(uint8_t *p, uint32_t s, Gif_Reader *grr)
+ {
+- if (s > grr->w) s = grr->w;
++ int res;
++ res = (s <= grr->w);
++ if (res)
++ s = grr->w;
+ memcpy(p, grr->v, s);
+ grr->w -= s, grr->v += s;
++ return res;
+ }
+
+ static uint32_t
+@@ -215,7 +219,8 @@
+ block_len = gifgetbyte(grr);
+ GIF_DEBUG(("\nimage_block(%d)", block_len));
+ if (block_len == 0) return 0;
+- gifgetblock(buffer + bit_length / 8, block_len, grr);
++ if (!gifgetblock(buffer + bit_length / 8, block_len, grr))
++ return 0;
+ bit_length += block_len * 8;
+ }
+
+@@ -362,7 +367,8 @@
+ i = gifgetbyte(grr);
+ GIF_DEBUG(("\nafter_image(%d)\n", i));
+ while (i > 0) {
+- gifgetblock(buffer, i, grr);
++ if (!gifgetblock(buffer, i, grr))
++ break;
+ i = gifgetbyte(grr);
+ GIF_DEBUG(("\nafter_image(%d)\n", i));
+ }
+@@ -477,7 +483,8 @@
+ if (!comp) return 0;
+ }
+ comp[comp_len] = i;
+- gifgetblock(comp + comp_len + 1, i, grr);
++ if (!gifgetblock(comp + comp_len + 1, i, grr))
++ break;
+ comp_len += i + 1;
+ i = gifgetbyte(grr);
+ }
+@@ -584,7 +591,8 @@
+ uint8_t buffer[GIF_MAX_BLOCK];
+ int i = gifgetbyte(grr);
+ while (i > 0) {
+- gifgetblock(buffer, i, grr);
++ if (!gifgetblock(buffer, i, grr))
++ break;
+ i = gifgetbyte(grr);
+ }
+ }
+@@ -614,13 +622,15 @@
+
+ if (len > 0) {
+ gif_read_error(gfc, "odd graphic extension format");
+- gifgetblock(crap, len, grr);
++ if (!gifgetblock(crap, len, grr))
++ return;
+ }
+
+ len = gifgetbyte(grr);
+ while (len > 0) {
+ gif_read_error(gfc, "odd graphic extension format");
+- gifgetblock(crap, len, grr);
++ if (!gifgetblock(crap, len, grr))
++ break;
+ len = gifgetbyte(grr);
+ }
+ }
+@@ -638,7 +648,8 @@
+ while (len > 0) {
+ Gif_ReArray(data, char, total_len + len + 1);
+ if (!data) return 0;
+- gifgetblock((uint8_t *)data, len, grr);
++ if (!gifgetblock((uint8_t *)data, len, grr))
++ break;
+
+ total_len += len;
+ data[total_len] = 0;
+@@ -664,7 +675,8 @@
+ if (data) Gif_ReArray(data, uint8_t, data_len + block_len + 1);
+ else data = Gif_NewArray(uint8_t, block_len + 1);
+ if (!data) goto done;
+- gifgetblock(data + data_len, block_len, grr);
++ if (!gifgetblock(data + data_len, block_len, grr))
++ break;
+ data_len += block_len;
+ block_len = gifgetbyte(grr);
+ }
+@@ -682,7 +694,8 @@
+ if (!gfex) Gif_DeleteArray(data);
+ while (block_len > 0) {
+ uint8_t buffer[GIF_MAX_BLOCK];
+- gifgetblock(buffer, block_len, grr);
++ if (!gifgetblock(buffer, block_len, grr))
++ break;
+ block_len = gifgetbyte(grr);
+ }
+ return gfex != 0;
+@@ -695,7 +708,10 @@
+ Gif_Stream *gfs = gfc->stream;
+ uint8_t buffer[GIF_MAX_BLOCK + 1];
+ uint8_t len = gifgetbyte(grr);
+- gifgetblock(buffer, len, grr);
++ if (!gifgetblock(buffer, len, grr)) {
++ gif_read_error(gfc, "bad application extension");
++ return 0;
++ }
+
+ /* Read the Netscape loop extension. */
+ if (len == 11 && memcmp(buffer, "NETSCAPE2.0", 11) == 0) {
+@@ -710,7 +726,8 @@
+ gif_read_error(gfc, "bad loop extension");
+
+ while (len > 0) {
+- gifgetblock(buffer, len, grr);
++ if (!gifgetblock(buffer, len, grr))
++ break;
+ len = gifgetbyte(grr);
+ }
+ return 1;
Modified: packages/branches/xmahjongg/etch/debian/patches/series
===================================================================
--- packages/branches/xmahjongg/etch/debian/patches/series 2009-04-14 11:23:12 UTC (rev 9579)
+++ packages/branches/xmahjongg/etch/debian/patches/series 2009-04-14 11:28:16 UTC (rev 9580)
@@ -1,3 +1,4 @@
01-autotools.patch
02-manpage-typo.patch
03-compiler-warnings.patch
+04-gif-read-errors.patch
Modified: packages/branches/xmahjongg/etch/debian/rules
===================================================================
--- packages/branches/xmahjongg/etch/debian/rules 2009-04-14 11:23:12 UTC (rev 9579)
+++ packages/branches/xmahjongg/etch/debian/rules 2009-04-14 11:28:16 UTC (rev 9580)
@@ -25,7 +25,7 @@
./configure --prefix=/usr --mandir=/usr/share/man --datadir=/usr/share/games
# Avoid rebuilding config.h.in
- touch config.h.in && touch configure
+ touch config.h.in && touch configure && touch config.status
# Add here commands to compile the package.
$(MAKE)
More information about the Pkg-games-commits
mailing list