diff options
author | Peter Volkov <pva@gentoo.org> | 2011-06-20 08:11:49 +0000 |
---|---|---|
committer | Peter Volkov <pva@gentoo.org> | 2011-06-20 08:11:49 +0000 |
commit | 53710a86101badacd8c8c8230b99aa649905e36e (patch) | |
tree | 738346f89e8b93a62d45a140e5fbf1f115359dd0 /app-arch/dump/files | |
parent | Stable on amd64 wrt bug #372303 (diff) | |
download | gentoo-2-53710a86101badacd8c8c8230b99aa649905e36e.tar.gz gentoo-2-53710a86101badacd8c8c8230b99aa649905e36e.tar.bz2 gentoo-2-53710a86101badacd8c8c8230b99aa649905e36e.zip |
Fix poor programming practices bug 370637 by Hans de Graaff.
(Portage version: 2.1.10.3/cvs/Linux x86_64)
Diffstat (limited to 'app-arch/dump/files')
-rw-r--r-- | app-arch/dump/files/dump-0.4.44-fix-pointers-aliasing.patch | 126 | ||||
-rw-r--r-- | app-arch/dump/files/dump-0.4.44-rl_completion_matches-detection.patch | 24 |
2 files changed, 150 insertions, 0 deletions
diff --git a/app-arch/dump/files/dump-0.4.44-fix-pointers-aliasing.patch b/app-arch/dump/files/dump-0.4.44-fix-pointers-aliasing.patch new file mode 100644 index 000000000000..6e3290085470 --- /dev/null +++ b/app-arch/dump/files/dump-0.4.44-fix-pointers-aliasing.patch @@ -0,0 +1,126 @@ +https://sourceforge.net/tracker/?func=detail&aid=3322910&group_id=1306&atid=301306 + +=== modified file 'dump/tape.c' +--- dump/tape.c 2011-06-20 07:22:40 +0000 ++++ dump/tape.c 2011-06-20 07:57:11 +0000 +@@ -1281,9 +1281,9 @@ + compresult = 1; + #ifdef HAVE_ZLIB + if (zipflag == COMPRESS_ZLIB) { +- compresult = compress2(comp_buf->buf, ++ compresult = compress2((Bytef *)comp_buf->buf, + &worklen, +- (char *)slp->tblock[0], ++ (Bytef *)slp->tblock[0], + writesize, + compressed); + if (compresult == Z_OK) +@@ -1313,8 +1313,9 @@ + #ifdef HAVE_LZO + if (zipflag == COMPRESS_LZO) { + lzo_uint worklen2 = worklen; +- compresult = lzo1x_1_compress((char *)slp->tblock[0],writesize, +- comp_buf->buf, ++ compresult = lzo1x_1_compress((lzo_bytep)slp->tblock[0], ++ writesize, ++ (lzo_bytep)comp_buf->buf, + &worklen2, + LZO_WorkMem); + worklen = worklen2; + +=== modified file 'dump/traverse.c' +--- dump/traverse.c 2011-06-20 07:22:40 +0000 ++++ dump/traverse.c 2011-06-20 07:57:11 +0000 +@@ -782,13 +782,13 @@ + for (i = p->next_block; i < blockcnt; i++) { + p->buf[p->cnt++] = 0; + if (p->cnt == p->max) { +- blksout (p->buf, p->cnt, p->ino); ++ blksout ((blk_t *)p->buf, p->cnt, p->ino); + p->cnt = 0; + } + } + p->buf[p->cnt++] = *blocknr; + if (p->cnt == p->max) { +- blksout (p->buf, p->cnt, p->ino); ++ blksout ((blk_t *)p->buf, p->cnt, p->ino); + p->cnt = 0; + } + p->next_block = blockcnt + 1; +@@ -868,14 +868,15 @@ + void + dumpino(struct dinode *dp, dump_ino_t ino, int metaonly) + { ++ fsizeT remaining; ++ char buf[TP_BSIZE]; ++ struct new_bsd_inode nbi; ++ int i; ++#ifdef __linux__ ++ struct block_context bc; ++#else + unsigned long cnt; +- fsizeT size, remaining; +- char buf[TP_BSIZE]; +- struct new_bsd_inode nbi; +- int i; +-#ifdef __linux__ +- struct block_context bc; +-#else ++ fsizeT size; + int ind_level; + #endif + u_quad_t i_size; +@@ -1001,13 +1002,13 @@ + for (i = 0; i < (int)howmany(remaining, sblock->fs_fsize); i++) { + bc.buf[bc.cnt++] = 0; + if (bc.cnt == bc.max) { +- blksout (bc.buf, bc.cnt, bc.ino); ++ blksout ((blk_t *)bc.buf, bc.cnt, bc.ino); + bc.cnt = 0; + } + } + } + if (bc.cnt > 0) { +- blksout (bc.buf, bc.cnt, bc.ino); ++ blksout ((blk_t *)bc.buf, bc.cnt, bc.ino); + } + free(bc.buf); + dump_xattr(ino, dp); +@@ -1016,7 +1017,7 @@ + cnt = NDADDR * sblock->fs_frag; + else + cnt = howmany(i_size, sblock->fs_fsize); +- blksout(&dp->di_db[0], cnt, ino); ++ blksout((blk_t *)&dp->di_db[0], cnt, ino); + if ((quad_t) (size = i_size - NDADDR * sblock->fs_bsize) <= 0) { + dump_xattr(ino, dp); + return; + +=== modified file 'restore/tape.c' +--- restore/tape.c 2011-06-20 07:22:40 +0000 ++++ restore/tape.c 2011-06-20 07:57:11 +0000 +@@ -2335,8 +2335,10 @@ + #ifndef HAVE_ZLIB + errx(1,"This restore version doesn't support zlib decompression"); + #else +- cresult = uncompress(comprbuf, &worklen, +- tpbin->buf, blocklen); ++ cresult = uncompress((Bytef *)comprbuf, ++ &worklen, ++ (Bytef *)tpbin->buf, ++ blocklen); + output = comprbuf; + switch (cresult) { + case Z_OK: +@@ -2397,8 +2399,8 @@ + errx(1,"This restore version doesn't support lzo decompression"); + #else + lzo_uint worklen2 = worklen; +- cresult = lzo1x_decompress(tpbin->buf, blocklen, +- comprbuf, &worklen2, NULL); ++ cresult = lzo1x_decompress((lzo_bytep)tpbin->buf, blocklen, ++ (lzo_bytep)comprbuf, &worklen2, NULL); + worklen = worklen2; + output = comprbuf; + switch (cresult) { + diff --git a/app-arch/dump/files/dump-0.4.44-rl_completion_matches-detection.patch b/app-arch/dump/files/dump-0.4.44-rl_completion_matches-detection.patch new file mode 100644 index 000000000000..6f968f549d7c --- /dev/null +++ b/app-arch/dump/files/dump-0.4.44-rl_completion_matches-detection.patch @@ -0,0 +1,24 @@ +https://sourceforge.net/tracker/?func=detail&aid=3322906&group_id=1306&atid=301306 + +=== modified file 'configure.in' +--- configure.in 2011-06-20 07:22:40 +0000 ++++ configure.in 2011-06-20 07:56:19 +0000 +@@ -516,7 +516,7 @@ + dnl + dnl Check for rl_completion_matches + dnl +-AC_CHECK_LIB(readline, rl_completion_matches, [rlcm=yes], [rlcm=no], "-ltermcap") ++AC_CHECK_LIB(readline, rl_completion_matches, [rlcm=yes], [rlcm=no], [$rdllib]) + if test "$rlcm" = yes; then + AC_DEFINE([HAVE_READLINE_RLCM],1,[Define this if your readline libs have the rl_completion_matches library.]) + fi +@@ -524,7 +524,7 @@ + dnl + dnl Check for rl_completion_append_character + dnl +-AC_CHECK_LIB(readline, rl_completion_append_character, [rcac=yes], [rcac=no], "-ltermcap") ++AC_CHECK_LIB(readline, rl_completion_append_character, [rcac=yes], [rcac=no], [$rdllib]) + if test "$rcac" = yes; then + AC_DEFINE([HAVE_READLINE_CAC],1,[Define this if your readline libs have the rl_completion_append_character variable.]) + fi + |