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