r2705 - in trunk/kernel/source/kernel-source-2.6.8-2.6.8/debian: . patches patches/series
Andres Salomon
dilinger-guest@costa.debian.org
Mon, 14 Mar 2005 11:08:58 +0100
Author: dilinger-guest
Date: 2005-03-14 11:08:56 +0100 (Mon, 14 Mar 2005)
New Revision: 2705
Added:
trunk/kernel/source/kernel-source-2.6.8-2.6.8/debian/patches/117-reiserfs_file_64bit_size_t_fixes.dpatch
Modified:
trunk/kernel/source/kernel-source-2.6.8-2.6.8/debian/changelog
trunk/kernel/source/kernel-source-2.6.8-2.6.8/debian/patches/series/2.6.8-14
Log:
* [SECURITY] 117-reiserfs_file_64bit_size_t_fixes.dpatch
reiserfs integer fixes; WDYBTGT3-4 on
http://www.guninski.com/where_do_you_want_billg_to_go_today_3.html
(Andres Salomon).
Modified: trunk/kernel/source/kernel-source-2.6.8-2.6.8/debian/changelog
===================================================================
--- trunk/kernel/source/kernel-source-2.6.8-2.6.8/debian/changelog 2005-03-14 10:03:46 UTC (rev 2704)
+++ trunk/kernel/source/kernel-source-2.6.8-2.6.8/debian/changelog 2005-03-14 10:08:56 UTC (rev 2705)
@@ -91,6 +91,11 @@
http://www.guninski.com/where_do_you_want_billg_to_go_today_3.html
No CAN#, yet (Andres Salomon).
+ * [SECURITY] 117-reiserfs_file_64bit_size_t_fixes.dpatch
+ reiserfs integer fixes; WDYBTGT3-4 on
+ http://www.guninski.com/where_do_you_want_billg_to_go_today_3.html
+ (Andres Salomon).
+
-- Joshua Kwan <joshk@triplehelix.org> Mon, 14 Mar 2005 00:03:12 -0800
kernel-source-2.6.8 (2.6.8-13) unstable; urgency=high
Added: trunk/kernel/source/kernel-source-2.6.8-2.6.8/debian/patches/117-reiserfs_file_64bit_size_t_fixes.dpatch
===================================================================
--- trunk/kernel/source/kernel-source-2.6.8-2.6.8/debian/patches/117-reiserfs_file_64bit_size_t_fixes.dpatch 2005-03-14 10:03:46 UTC (rev 2704)
+++ trunk/kernel/source/kernel-source-2.6.8-2.6.8/debian/patches/117-reiserfs_file_64bit_size_t_fixes.dpatch 2005-03-14 10:08:56 UTC (rev 2705)
@@ -0,0 +1,106 @@
+#! /bin/sh -e
+## <PATCHNAME>.dpatch by <PATCH_AUTHOR@EMAI>
+##
+## All lines beginning with `## DP:' are a description of the patch.
+## DP: Description: [PATCH] reiserfs: use proper 64-bit clean types
+## DP: Patch author: guninski@guninski.com
+## DP: Upstream status: backport
+
+. $(dirname $0)/DPATCH
+
+@DPATCH@
+# This is a BitKeeper generated diff -Nru style patch.
+#
+# ChangeSet
+# 2005/02/02 17:45:11-08:00 guninski@guninski.com
+# [PATCH] reiserfs: use proper 64-bit clean types
+#
+# reiserfs_file_write() casts its (size_t) count parameter to int, which can become
+# a problem on 64-bit architectures
+#
+# This attempts to fix this by changing the variables dealing with count
+# and offset and the "min_t" comparisons to use "size_t" through-out.
+#
+# Acked-by: Marcelo Tosatti <marcelo.tosatti@cyclades.com>
+# Signed-off-by: Linus Torvalds <torvalds@osdl.org>
+#
+# fs/reiserfs/file.c
+# 2005/01/26 07:28:12-08:00 guninski@guninski.com +11 -12
+# reiserfs: use proper 64-bit clean types
+#
+diff -Nru a/fs/reiserfs/file.c b/fs/reiserfs/file.c
+--- a/fs/reiserfs/file.c 2005-02-14 01:29:00 -08:00
++++ b/fs/reiserfs/file.c 2005-02-14 01:29:00 -08:00
+@@ -588,7 +588,7 @@
+
+ /* Unlock pages prepared by reiserfs_prepare_file_region_for_write */
+ void reiserfs_unprepare_pages(struct page **prepared_pages, /* list of locked pages */
+- int num_pages /* amount of pages */) {
++ size_t num_pages /* amount of pages */) {
+ int i; // loop counter
+
+ for (i=0; i < num_pages ; i++) {
+@@ -619,7 +619,7 @@
+ int offset; // offset in page
+
+ for ( i = 0, offset = (pos & (PAGE_CACHE_SIZE-1)); i < num_pages ; i++,offset=0) {
+- int count = min_t(int,PAGE_CACHE_SIZE-offset,write_bytes); // How much of bytes to write to this page
++ size_t count = min_t(size_t,PAGE_CACHE_SIZE-offset,write_bytes); // How much of bytes to write to this page
+ struct page *page=prepared_pages[i]; // Current page we process.
+
+ fault_in_pages_readable( buf, count);
+@@ -718,8 +718,8 @@
+ struct reiserfs_transaction_handle *th,
+ struct inode *inode,
+ loff_t pos, /* Writing position offset */
+- int num_pages, /* Number of pages to write */
+- int write_bytes, /* number of bytes to write */
++ size_t num_pages, /* Number of pages to write */
++ size_t write_bytes, /* number of bytes to write */
+ struct page **prepared_pages /* list of pages */
+ )
+ {
+@@ -854,9 +854,9 @@
+ static int reiserfs_prepare_file_region_for_write(
+ struct inode *inode /* Inode of the file */,
+ loff_t pos, /* position in the file */
+- int num_pages, /* number of pages to
++ size_t num_pages, /* number of pages to
+ prepare */
+- int write_bytes, /* Amount of bytes to be
++ size_t write_bytes, /* Amount of bytes to be
+ overwritten from
+ @pos */
+ struct page **prepared_pages /* pointer to array
+@@ -1252,10 +1252,9 @@
+ while ( count > 0) {
+ /* This is the main loop in which we running until some error occures
+ or until we write all of the data. */
+- int num_pages;/* amount of pages we are going to write this iteration */
+- int write_bytes; /* amount of bytes to write during this iteration */
+- int blocks_to_allocate; /* how much blocks we need to allocate for
+- this iteration */
++ size_t num_pages;/* amount of pages we are going to write this iteration */
++ size_t write_bytes; /* amount of bytes to write during this iteration */
++ size_t blocks_to_allocate; /* how much blocks we need to allocate for this iteration */
+
+ /* (pos & (PAGE_CACHE_SIZE-1)) is an idiom for offset into a page of pos*/
+ num_pages = !!((pos+count) & (PAGE_CACHE_SIZE - 1)) + /* round up partial
+@@ -1269,7 +1268,7 @@
+ /* If we were asked to write more data than we want to or if there
+ is not that much space, then we shorten amount of data to write
+ for this iteration. */
+- num_pages = min_t(int, REISERFS_WRITE_PAGES_AT_A_TIME, reiserfs_can_fit_pages(inode->i_sb));
++ num_pages = min_t(size_t, REISERFS_WRITE_PAGES_AT_A_TIME, reiserfs_can_fit_pages(inode->i_sb));
+ /* Also we should not forget to set size in bytes accordingly */
+ write_bytes = (num_pages << PAGE_CACHE_SHIFT) -
+ (pos & (PAGE_CACHE_SIZE-1));
+@@ -1295,7 +1294,7 @@
+ // But overwriting files on absolutelly full volumes would not
+ // be very efficient. Well, people are not supposed to fill
+ // 100% of disk space anyway.
+- write_bytes = min_t(int, count, inode->i_sb->s_blocksize - (pos & (inode->i_sb->s_blocksize - 1)));
++ write_bytes = min_t(size_t, count, inode->i_sb->s_blocksize - (pos & (inode->i_sb->s_blocksize - 1)));
+ num_pages = 1;
+ // No blocks were claimed before, so do it now.
+ reiserfs_claim_blocks_to_be_allocated(inode->i_sb, 1 << (PAGE_CACHE_SHIFT - inode->i_blkbits));
Modified: trunk/kernel/source/kernel-source-2.6.8-2.6.8/debian/patches/series/2.6.8-14
===================================================================
--- trunk/kernel/source/kernel-source-2.6.8-2.6.8/debian/patches/series/2.6.8-14 2005-03-14 10:03:46 UTC (rev 2704)
+++ trunk/kernel/source/kernel-source-2.6.8-2.6.8/debian/patches/series/2.6.8-14 2005-03-14 10:08:56 UTC (rev 2705)
@@ -25,3 +25,4 @@
+ 109-binfmt_elf_loader_solar_designer_fixes.dpatch
+ 115-proc_file_read_nbytes_signedness_fix.dpatch
+ 116-n_tty_copy_from_read_buf_signedness_fixes.dpatch
++ 117-reiserfs_file_64bit_size_t_fixes.dpatch