linux-kernel.vger.kernel.org archive mirror
 help / color / mirror / Atom feed
From: Willy Tarreau <w@1wt.eu>
To: linux-kernel@vger.kernel.org, stable@vger.kernel.org
Cc: Tyler Hicks <tyhicks@canonical.com>,
	Colin Ian King <colin.king@canonical.com>,
	Stefan Bader <stefan.bader@canonical.com>,
	Tim Gardner <tim.gardner@canonical.com>, Willy Tarreau <w@1wt.eu>
Subject: [ 026/180] eCryptfs: Improve statfs reporting
Date: Tue, 02 Oct 2012 00:52:23 +0200	[thread overview]
Message-ID: <20121001225158.719221314@1wt.eu> (raw)
In-Reply-To: <6a854f579a99b4fe2efaca1057e8ae22@local>

2.6.32-longterm review patch.  If anyone has any objections, please let me know.

------------------

From: Tyler Hicks <tyhicks@canonical.com>

commit 4a26620df451ad46151ad21d711ed43e963c004e upstream.

BugLink: http://bugs.launchpad.net/bugs/885744

statfs() calls on eCryptfs files returned the wrong filesystem type and,
when using filename encryption, the wrong maximum filename length.

If mount-wide filename encryption is enabled, the cipher block size and
the lower filesystem's max filename length will determine the max
eCryptfs filename length. Pre-tested, known good lengths are used when
the lower filesystem's namelen is 255 and a cipher with 8 or 16 byte
block sizes is used. In other, less common cases, we fall back to a safe
rounded-down estimate when determining the eCryptfs namelen.

https://launchpad.net/bugs/885744

Signed-off-by: Tyler Hicks <tyhicks@canonical.com>
Reported-by: Kees Cook <keescook@chromium.org>
Reviewed-by: Kees Cook <keescook@chromium.org>
Reviewed-by: John Johansen <john.johansen@canonical.com>
Signed-off-by: Colin Ian King <colin.king@canonical.com>
Acked-by: Stefan Bader <stefan.bader@canonical.com>
Signed-off-by: Tim Gardner <tim.gardner@canonical.com>
Signed-off-by: Willy Tarreau <w@1wt.eu>
---
 fs/ecryptfs/crypto.c          |   68 ++++++++++++++++++++++++++++++++++++----
 fs/ecryptfs/ecryptfs_kernel.h |   11 ++++++
 fs/ecryptfs/keystore.c        |    9 ++---
 fs/ecryptfs/super.c           |   18 ++++++++++-
 4 files changed, 92 insertions(+), 14 deletions(-)

diff --git a/fs/ecryptfs/crypto.c b/fs/ecryptfs/crypto.c
index 7e164bb..7786bf6 100644
--- a/fs/ecryptfs/crypto.c
+++ b/fs/ecryptfs/crypto.c
@@ -2039,6 +2039,17 @@ out:
 	return;
 }
 
+static size_t ecryptfs_max_decoded_size(size_t encoded_size)
+{
+	/* Not exact; conservatively long. Every block of 4
+	 * encoded characters decodes into a block of 3
+	 * decoded characters. This segment of code provides
+	 * the caller with the maximum amount of allocated
+	 * space that @dst will need to point to in a
+	 * subsequent call. */
+	return ((encoded_size + 1) * 3) / 4;
+}
+
 /**
  * ecryptfs_decode_from_filename
  * @dst: If NULL, this function only sets @dst_size and returns. If
@@ -2057,13 +2068,7 @@ ecryptfs_decode_from_filename(unsigned char *dst, size_t *dst_size,
 	size_t dst_byte_offset = 0;
 
 	if (dst == NULL) {
-		/* Not exact; conservatively long. Every block of 4
-		 * encoded characters decodes into a block of 3
-		 * decoded characters. This segment of code provides
-		 * the caller with the maximum amount of allocated
-		 * space that @dst will need to point to in a
-		 * subsequent call. */
-		(*dst_size) = (((src_size + 1) * 3) / 4);
+		(*dst_size) = ecryptfs_max_decoded_size(src_size);
 		goto out;
 	}
 	while (src_byte_offset < src_size) {
@@ -2289,3 +2294,52 @@ out_free:
 out:
 	return rc;
 }
+
+#define ENC_NAME_MAX_BLOCKLEN_8_OR_16	143
+
+int ecryptfs_set_f_namelen(long *namelen, long lower_namelen,
+			   struct ecryptfs_mount_crypt_stat *mount_crypt_stat)
+{
+	struct blkcipher_desc desc;
+	struct mutex *tfm_mutex;
+	size_t cipher_blocksize;
+	int rc;
+
+	if (!(mount_crypt_stat->flags & ECRYPTFS_GLOBAL_ENCRYPT_FILENAMES)) {
+		(*namelen) = lower_namelen;
+		return 0;
+	}
+
+	rc = ecryptfs_get_tfm_and_mutex_for_cipher_name(&desc.tfm, &tfm_mutex,
+			mount_crypt_stat->global_default_fn_cipher_name);
+	if (unlikely(rc)) {
+		(*namelen) = 0;
+		return rc;
+	}
+
+	mutex_lock(tfm_mutex);
+	cipher_blocksize = crypto_blkcipher_blocksize(desc.tfm);
+	mutex_unlock(tfm_mutex);
+
+	/* Return an exact amount for the common cases */
+	if (lower_namelen == NAME_MAX
+	    && (cipher_blocksize == 8 || cipher_blocksize == 16)) {
+		(*namelen) = ENC_NAME_MAX_BLOCKLEN_8_OR_16;
+		return 0;
+	}
+
+	/* Return a safe estimate for the uncommon cases */
+	(*namelen) = lower_namelen;
+	(*namelen) -= ECRYPTFS_FNEK_ENCRYPTED_FILENAME_PREFIX_SIZE;
+	/* Since this is the max decoded size, subtract 1 "decoded block" len */
+	(*namelen) = ecryptfs_max_decoded_size(*namelen) - 3;
+	(*namelen) -= ECRYPTFS_TAG_70_MAX_METADATA_SIZE;
+	(*namelen) -= ECRYPTFS_FILENAME_MIN_RANDOM_PREPEND_BYTES;
+	/* Worst case is that the filename is padded nearly a full block size */
+	(*namelen) -= cipher_blocksize - 1;
+
+	if ((*namelen) < 0)
+		(*namelen) = 0;
+
+	return 0;
+}
diff --git a/fs/ecryptfs/ecryptfs_kernel.h b/fs/ecryptfs/ecryptfs_kernel.h
index 9685315..4181136 100644
--- a/fs/ecryptfs/ecryptfs_kernel.h
+++ b/fs/ecryptfs/ecryptfs_kernel.h
@@ -219,12 +219,21 @@ ecryptfs_get_key_payload_data(struct key *key)
 					  * dentry name */
 #define ECRYPTFS_TAG_73_PACKET_TYPE 0x49 /* FEK-encrypted filename as
 					  * metadata */
+#define ECRYPTFS_MIN_PKT_LEN_SIZE 1 /* Min size to specify packet length */
+#define ECRYPTFS_MAX_PKT_LEN_SIZE 2 /* Pass at least this many bytes to
+				     * ecryptfs_parse_packet_length() and
+				     * ecryptfs_write_packet_length()
+				     */
 /* Constraint: ECRYPTFS_FILENAME_MIN_RANDOM_PREPEND_BYTES >=
  * ECRYPTFS_MAX_IV_BYTES */
 #define ECRYPTFS_FILENAME_MIN_RANDOM_PREPEND_BYTES 16
 #define ECRYPTFS_NON_NULL 0x42 /* A reasonable substitute for NULL */
 #define MD5_DIGEST_SIZE 16
 #define ECRYPTFS_TAG_70_DIGEST_SIZE MD5_DIGEST_SIZE
+#define ECRYPTFS_TAG_70_MIN_METADATA_SIZE (1 + ECRYPTFS_MIN_PKT_LEN_SIZE \
+					   + ECRYPTFS_SIG_SIZE + 1 + 1)
+#define ECRYPTFS_TAG_70_MAX_METADATA_SIZE (1 + ECRYPTFS_MAX_PKT_LEN_SIZE \
+					   + ECRYPTFS_SIG_SIZE + 1 + 1)
 #define ECRYPTFS_FEK_ENCRYPTED_FILENAME_PREFIX "ECRYPTFS_FEK_ENCRYPTED."
 #define ECRYPTFS_FEK_ENCRYPTED_FILENAME_PREFIX_SIZE 23
 #define ECRYPTFS_FNEK_ENCRYPTED_FILENAME_PREFIX "ECRYPTFS_FNEK_ENCRYPTED."
@@ -762,6 +771,8 @@ ecryptfs_parse_tag_70_packet(char **filename, size_t *filename_size,
 			     size_t *packet_size,
 			     struct ecryptfs_mount_crypt_stat *mount_crypt_stat,
 			     char *data, size_t max_packet_size);
+int ecryptfs_set_f_namelen(long *namelen, long lower_namelen,
+			   struct ecryptfs_mount_crypt_stat *mount_crypt_stat);
 int ecryptfs_derive_iv(char *iv, struct ecryptfs_crypt_stat *crypt_stat,
 		       loff_t offset);
 
diff --git a/fs/ecryptfs/keystore.c b/fs/ecryptfs/keystore.c
index 8f1a525..4f1feeb 100644
--- a/fs/ecryptfs/keystore.c
+++ b/fs/ecryptfs/keystore.c
@@ -548,10 +548,7 @@ ecryptfs_write_tag_70_packet(char *dest, size_t *remaining_bytes,
 	 * Octets N3-N4: Block-aligned encrypted filename
 	 *  - Consists of a minimum number of random characters, a \0
 	 *    separator, and then the filename */
-	s->max_packet_size = (1                   /* Tag 70 identifier */
-			      + 3                 /* Max Tag 70 packet size */
-			      + ECRYPTFS_SIG_SIZE /* FNEK sig */
-			      + 1                 /* Cipher identifier */
+	s->max_packet_size = (ECRYPTFS_TAG_70_MAX_METADATA_SIZE
 			      + s->block_aligned_filename_size);
 	if (dest == NULL) {
 		(*packet_size) = s->max_packet_size;
@@ -806,10 +803,10 @@ ecryptfs_parse_tag_70_packet(char **filename, size_t *filename_size,
 		goto out;
 	}
 	s->desc.flags = CRYPTO_TFM_REQ_MAY_SLEEP;
-	if (max_packet_size < (1 + 1 + ECRYPTFS_SIG_SIZE + 1 + 1)) {
+	if (max_packet_size < ECRYPTFS_TAG_70_MIN_METADATA_SIZE) {
 		printk(KERN_WARNING "%s: max_packet_size is [%zd]; it must be "
 		       "at least [%d]\n", __func__, max_packet_size,
-			(1 + 1 + ECRYPTFS_SIG_SIZE + 1 + 1));
+		       ECRYPTFS_TAG_70_MIN_METADATA_SIZE);
 		rc = -EINVAL;
 		goto out;
 	}
diff --git a/fs/ecryptfs/super.c b/fs/ecryptfs/super.c
index 1a037f7..557469a 100644
--- a/fs/ecryptfs/super.c
+++ b/fs/ecryptfs/super.c
@@ -30,6 +30,8 @@
 #include <linux/smp_lock.h>
 #include <linux/file.h>
 #include <linux/crypto.h>
+#include <linux/statfs.h>
+#include <linux/magic.h>
 #include "ecryptfs_kernel.h"
 
 struct kmem_cache *ecryptfs_inode_info_cache;
@@ -137,7 +139,21 @@ static void ecryptfs_put_super(struct super_block *sb)
  */
 static int ecryptfs_statfs(struct dentry *dentry, struct kstatfs *buf)
 {
-	return vfs_statfs(ecryptfs_dentry_to_lower(dentry), buf);
+	struct dentry *lower_dentry = ecryptfs_dentry_to_lower(dentry);
+	int rc;
+
+	if (!lower_dentry->d_sb->s_op->statfs)
+		return -ENOSYS;
+
+	rc = lower_dentry->d_sb->s_op->statfs(lower_dentry, buf);
+	if (rc)
+		return rc;
+
+	buf->f_type = ECRYPTFS_SUPER_MAGIC;
+	rc = ecryptfs_set_f_namelen(&buf->f_namelen, buf->f_namelen,
+	       &ecryptfs_superblock_to_private(dentry->d_sb)->mount_crypt_stat);
+
+	return rc;
 }
 
 /**
-- 
1.7.2.1.45.g54fbc




  parent reply	other threads:[~2012-10-01 23:15 UTC|newest]

Thread overview: 220+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
     [not found] <6a854f579a99b4fe2efaca1057e8ae22@local>
2012-10-01 22:51 ` [ 000/180] 2.6.32.60-longterm review Willy Tarreau
2012-10-01 22:51 ` [ 001/180] netxen: support for GbE port settings Willy Tarreau
2012-10-03 17:38   ` Sony Chacko
2012-10-01 22:51 ` [ 002/180] Fix sparc build with newer tools Willy Tarreau
2012-10-01 22:52 ` [ 003/180] powerpc/pmac: Fix SMP kernels on pre-core99 UP machines Willy Tarreau
2012-10-01 22:52 ` [ 004/180] Bluetooth: btusb: fix bInterval for high/super speed isochronous endpoints Willy Tarreau
2012-10-01 22:52 ` [ 005/180] jbd2: clear BH_Delay & BH_Unwritten in journal_unmap_buffer Willy Tarreau
2012-10-01 22:52 ` [ 006/180] fix pgd_lock deadlock Willy Tarreau
2012-10-01 22:52 ` [ 007/180] futex: Fix uninterruptible loop due to gate_area Willy Tarreau
2012-10-01 22:52 ` [ 008/180] 2.6.32.x: ntp: Fix leap-second hrtimer livelock Willy Tarreau
2012-10-03 14:50   ` Ben Hutchings
2012-10-03 16:01     ` Willy Tarreau
2012-10-03 17:01       ` John Stultz
2012-10-03 17:34         ` Ben Hutchings
2012-10-03 17:45           ` Willy Tarreau
2012-10-03 17:43         ` Willy Tarreau
2012-10-01 22:52 ` [ 009/180] 2.6.32.x: ntp: Correct TAI offset during leap second Willy Tarreau
2012-10-01 22:52 ` [ 010/180] 2.6.32.x: timekeeping: Fix CLOCK_MONOTONIC inconsistency during leapsecond Willy Tarreau
2012-10-01 22:52 ` [ 011/180] 2.6.32.x: time: Move common updates to a function Willy Tarreau
2012-10-01 22:52 ` [ 012/180] 2.6.32.x: hrtimer: Provide clock_was_set_delayed() Willy Tarreau
2012-10-01 22:52 ` [ 013/180] 2.6.32.x: timekeeping: Fix leapsecond triggered load spike issue Willy Tarreau
2012-10-01 22:52 ` [ 014/180] 2.6.32.x: timekeeping: Maintain ktime_t based offsets for hrtimers Willy Tarreau
2012-10-01 22:52 ` [ 015/180] 2.6.32.x: hrtimers: Move lock held region in hrtimer_interrupt() Willy Tarreau
2012-10-01 22:52 ` [ 016/180] 2.6.32.x: timekeeping: Provide hrtimer update function Willy Tarreau
2012-10-01 22:52 ` [ 017/180] 2.6.32.x: hrtimer: Update hrtimer base offsets each hrtimer_interrupt Willy Tarreau
2012-10-01 22:52 ` [ 018/180] 2.6.32.x: timekeeping: Add missing update call in timekeeping_resume() Willy Tarreau
2012-10-01 22:52 ` [ 019/180] 2.6.32.y: time: Improve sanity checking of timekeeping inputs Willy Tarreau
2012-10-01 22:52 ` [ 020/180] 2.6.32.y: time: Avoid making adjustments if we havent accumulated anything Willy Tarreau
2012-10-01 22:52 ` [ 021/180] 2.6.32.y: time: Move ktime_t overflow checking into timespec_valid_strict Willy Tarreau
2012-10-01 22:52 ` [ 022/180] ioat2: kill pending flag Willy Tarreau
2012-10-04 14:47   ` Ben Hutchings
2012-10-04 20:16     ` Willy Tarreau
2012-10-01 22:52 ` [ 023/180] drm/i915: Attempt to fix watermark setup on 85x (v2) Willy Tarreau
2012-10-01 22:52 ` [ 024/180] usb: Fix deadlock in hid_reset when Dell iDRAC is reset Willy Tarreau
2012-10-01 22:52 ` [ 025/180] eCryptfs: Copy up lower inode attrs after setting lower xattr Willy Tarreau
2012-10-01 22:52 ` Willy Tarreau [this message]
2012-10-02  5:46   ` [ 026/180] eCryptfs: Improve statfs reporting Tyler Hicks
2012-10-02  5:57     ` Willy Tarreau
2012-10-02 12:24     ` Tim Gardner
2012-10-03 15:13       ` Ben Hutchings
2012-10-01 22:52 ` [ 027/180] eCryptfs: Clear ECRYPTFS_NEW_FILE flag during truncate Willy Tarreau
2012-10-01 22:52 ` [ 028/180] oprofile: use KM_NMI slot for kmap_atomic Willy Tarreau
2012-10-01 22:52 ` [ 029/180] tty_audit: fix tty_audit_add_data live lock on audit disabled Willy Tarreau
2012-10-01 22:52 ` [ 030/180] bonding: 802.3ad - fix agg_device_up Willy Tarreau
2012-10-01 22:52 ` [ 031/180] usbnet: increase URB reference count before usb_unlink_urb Willy Tarreau
2012-10-01 22:52 ` [ 032/180] usbnet: dont clear urb->dev in tx_complete Willy Tarreau
2012-10-01 22:52 ` [ 033/180] sched: Fix signed unsigned comparison in check_preempt_tick() Willy Tarreau
2012-10-01 22:52 ` [ 034/180] x86/PCI: amd: factor out MMCONFIG discovery Willy Tarreau
2012-10-01 22:52 ` [ 035/180] PNP: fix "work around Dell 1536/1546 BIOS MMCONFIG bug that breaks USB" Willy Tarreau
2012-10-01 22:52 ` [ 036/180] KVM: Remove ability to assign a device without iommu support Willy Tarreau
2012-10-01 22:52 ` [ 037/180] KVM: Device assignment permission checks Willy Tarreau
2012-10-01 22:52 ` [ 038/180] KVM: x86: Prevent starting PIT timers in the absence of irqchip support Willy Tarreau
2012-10-01 22:52 ` [ 039/180] rose: Add length checks to CALL_REQUEST parsing Willy Tarreau
2012-10-01 22:52 ` [ 040/180] KVM: x86: extend "struct x86_emulate_ops" with "get_cpuid" Willy Tarreau
2012-10-04 17:15   ` Ben Hutchings
2012-10-01 22:52 ` [ 041/180] KVM: x86: fix missing checks in syscall emulation Willy Tarreau
2012-10-04 17:20   ` Ben Hutchings
2012-10-01 22:52 ` [ 042/180] block: Fix io_context leak after clone with CLONE_IO Willy Tarreau
2012-10-01 22:52 ` [ 043/180] block: Fix io_context leak after failure of " Willy Tarreau
2012-10-01 22:52 ` [ 044/180] KVM: x86: disallow multiple KVM_CREATE_IRQCHIP Willy Tarreau
2012-10-01 22:52 ` [ 045/180] KVM: Ensure all vcpus are consistent with in-kernel irqchip settings Willy Tarreau
2012-10-04 17:35   ` Ben Hutchings
2012-10-01 22:52 ` [ 046/180] xfs: Fix possible memory corruption in xfs_readlink Willy Tarreau
2012-10-03 15:01   ` Herton Ronaldo Krzesinski
2012-10-03 16:05     ` Willy Tarreau
2012-10-01 22:52 ` [ 047/180] fcaps: clear the same personality flags as suid when fcaps are used Willy Tarreau
2012-10-01 22:52 ` [ 048/180] security: fix compile error in commoncap.c Willy Tarreau
2012-10-01 22:52 ` [ 049/180] hugepages: fix use after free bug in "quota" handling Willy Tarreau
2012-10-01 22:52 ` [ 050/180] net: sock: validate data_len before allocating skb in sock_alloc_send_pskb() Willy Tarreau
2012-10-01 22:52 ` [ 051/180] dl2k: use standard #defines from mii.h Willy Tarreau
2012-10-01 22:52 ` [ 052/180] dl2k: Clean up rio_ioctl Willy Tarreau
2012-10-01 22:52 ` [ 053/180] hfsplus: Fix potential buffer overflows Willy Tarreau
2012-10-01 22:52 ` [ 054/180] cred: copy_process() should clear child->replacement_session_keyring Willy Tarreau
2012-10-01 22:52 ` [ 055/180] tcp: Dont change unlocked socket state in tcp_v4_err() Willy Tarreau
2012-10-01 22:52 ` [ 056/180] x86: Derandom delay_tsc for 64 bit Willy Tarreau
2012-10-01 22:52 ` [ 057/180] ipsec: be careful of non existing mac headers Willy Tarreau
2012-10-01 22:52 ` [ 058/180] block, sx8: fix pointer math issue getting fw version Willy Tarreau
2012-10-01 22:52 ` [ 059/180] nilfs2: fix NULL pointer dereference in nilfs_load_super_block() Willy Tarreau
2012-10-01 22:52 ` [ 060/180] USB: ftdi_sio: fix problem when the manufacture is a NULL string Willy Tarreau
2012-10-01 22:52 ` [ 061/180] ntp: Fix integer overflow when setting time Willy Tarreau
2012-10-01 22:52 ` [ 062/180] SUNRPC: We must not use list_for_each_entry_safe() in rpc_wake_up() Willy Tarreau
2012-10-01 22:53 ` [ 063/180] ext4: check for zero length extent Willy Tarreau
2012-10-01 22:53 ` [ 064/180] xfs: Fix oops on IO error during xlog_recover_process_iunlinks() Willy Tarreau
2012-10-01 22:53 ` [ 065/180] nfsd: dont allow zero length strings in cache_parse() Willy Tarreau
2012-10-01 22:53 ` [ 066/180] sched/x86: Fix overflow in cyc2ns_offset Willy Tarreau
2012-10-01 22:53 ` [ 067/180] Bluetooth: add NULL pointer check in HCI Willy Tarreau
2012-10-01 22:53 ` [ 068/180] Bluetooth: hci_ldisc: fix NULL-pointer dereference on tty_close Willy Tarreau
2012-10-01 22:53 ` [ 069/180] sparc64: Fix bootup crash on sun4v Willy Tarreau
2012-10-01 22:53 ` [ 070/180] video:uvesafb: Fix oops that uvesafb try to execute NX-protected page Willy Tarreau
2012-10-01 22:53 ` [ 071/180] USB: serial: fix race between probe and open Willy Tarreau
2012-10-01 22:53 ` [ 072/180] xhci: Dont write zeroed pointers to xHC registers Willy Tarreau
2012-10-01 22:53 ` [ 073/180] xHCI: Correct the #define XHCI_LEGACY_DISABLE_SMI Willy Tarreau
2012-10-01 22:53 ` [ 074/180] crypto: sha512 - Fix byte counter overflow in SHA-512 Willy Tarreau
2012-10-01 22:53 ` [ 075/180] PCI: Add quirk for still enabled interrupts on Intel Sandy Bridge GPUs Willy Tarreau
2012-10-01 22:53 ` [ 076/180] phonet: Check input from user before allocating Willy Tarreau
2012-10-01 22:53 ` [ 077/180] netlink: fix races after skb queueing Willy Tarreau
2012-10-01 22:53 ` [ 078/180] net: fix a race in sock_queue_err_skb() Willy Tarreau
2012-10-01 22:53 ` [ 079/180] atl1: fix kernel panic in case of DMA errors Willy Tarreau
2012-10-01 22:53 ` [ 080/180] net/ethernet: ks8851_mll fix rx frame buffer overflow Willy Tarreau
2012-10-01 22:53 ` [ 081/180] net_sched: gred: Fix oops in gred_dump() in WRED mode Willy Tarreau
2012-10-01 22:53 ` [ 082/180] ARM: 7410/1: Add extra clobber registers for assembly in kernel_execve Willy Tarreau
2012-10-01 22:53 ` [ 083/180] netem: fix possible skb leak Willy Tarreau
2012-10-01 22:53 ` [ 084/180] ALSA: echoaudio: Remove incorrect part of assertion Willy Tarreau
2012-10-01 22:53 ` [ 085/180] NFSv4: Revalidate uid/gid after open Willy Tarreau
2012-10-01 22:53 ` [ 086/180] ext3: Fix error handling on inode bitmap corruption Willy Tarreau
2012-10-01 22:53 ` [ 087/180] ext4: fix " Willy Tarreau
2012-10-01 22:53 ` [ 088/180] xhci: Reset reserved command ring TRBs on cleanup Willy Tarreau
2012-10-01 22:53 ` [ 089/180] SCSI: fix scsi_wait_scan Willy Tarreau
2012-10-04 20:34   ` Ben Hutchings
2012-10-04 20:38     ` Willy Tarreau
2012-10-04 20:57       ` Ben Hutchings
2012-10-04 21:08         ` Willy Tarreau
2012-10-01 22:53 ` [ 090/180] powerpc: Fix kernel panic during kernel module load Willy Tarreau
2012-10-01 22:53 ` [ 091/180] fuse: fix stat call on 32 bit platforms Willy Tarreau
2012-10-01 22:53 ` [ 092/180] udf: Avoid run away loop when partition table length is corrupted Willy Tarreau
2012-10-04 21:23   ` Ben Hutchings
2012-10-04 21:48     ` Willy Tarreau
2012-10-01 22:53 ` [ 093/180] stable: Allow merging of backports for serious user-visible performance issues Willy Tarreau
2012-10-01 22:53 ` [ 094/180] eCryptfs: Properly check for O_RDONLY flag before doing privileged open Willy Tarreau
2012-10-01 22:53 ` [ 095/180] USB: cdc-wdm: fix lockup on error in wdm_read Willy Tarreau
2012-10-01 22:53 ` [ 096/180] mm: Hold a file reference in madvise_remove Willy Tarreau
2012-10-01 22:53 ` [ 097/180] ntp: Fix STA_INS/DEL clearing bug Willy Tarreau
2012-10-01 22:53 ` [ 098/180] MIPS: Properly align the .data..init_task section Willy Tarreau
2012-10-01 22:53 ` [ 099/180] powerpc/ftrace: Fix assembly trampoline register usage Willy Tarreau
2012-10-02 13:45   ` Paul Gortmaker
2012-10-02 13:59     ` Willy Tarreau
2012-10-04 21:31   ` Ben Hutchings
2012-10-01 22:53 ` [ 100/180] powerpc: Add "memory" attribute for mfmsr() Willy Tarreau
2012-10-04 21:32   ` Ben Hutchings
2012-10-01 22:53 ` [ 101/180] SCSI: libsas: continue revalidation Willy Tarreau
2012-10-04 21:33   ` Ben Hutchings
2012-10-01 22:53 ` [ 102/180] SCSI: libsas: fix sas_discover_devices return code handling Willy Tarreau
2012-10-01 22:53 ` [ 103/180] SCSI: fix eh wakeup (scsi_schedule_eh vs scsi_restart_operations) Willy Tarreau
2012-10-01 22:53 ` [ 104/180] SCSI: Avoid dangling pointer in scsi_requeue_command() Willy Tarreau
2012-10-01 22:53 ` [ 105/180] usbdevfs: Correct amount of data copied to user in processcompl_compat Willy Tarreau
2012-10-01 22:53 ` [ 106/180] locks: fix checking of fcntl_setlease argument Willy Tarreau
2012-10-01 22:53 ` [ 107/180] ACPI/AC: prevent OOPS on some boxes due to missing check power_supply_register() return value check Willy Tarreau
2012-10-01 22:53 ` [ 108/180] Btrfs: call the ordered free operation without any locks held Willy Tarreau
2012-10-01 22:53 ` [ 109/180] nfsd4: our filesystems are normally case sensitive Willy Tarreau
2012-10-01 22:53 ` [ 110/180] ext4: dont let i_reserved_meta_blocks go negative Willy Tarreau
2012-10-04 21:55   ` Ben Hutchings
2012-10-05 11:59     ` Brian Foster
2012-10-05 12:37       ` Willy Tarreau
2012-10-05 13:00         ` Brian Foster
2012-10-07  1:47       ` Ben Hutchings
2012-10-07  6:21         ` Willy Tarreau
2012-10-01 22:53 ` [ 111/180] sctp: Fix list corruption resulting from freeing an association on a list Willy Tarreau
2012-10-01 22:53 ` [ 112/180] cipso: dont follow a NULL pointer when setsockopt() is called Willy Tarreau
2012-10-01 22:53 ` [ 113/180] wanmain: comparing array with NULL Willy Tarreau
2012-10-01 22:53 ` [ 114/180] USB: kaweth.c: use GFP_ATOMIC under spin_lock Willy Tarreau
2012-10-01 22:53 ` [ 115/180] tcp: perform DMA to userspace only if there is a task waiting for it Willy Tarreau
2012-10-01 22:53 ` [ 116/180] net/tun: fix ioctl() based info leaks Willy Tarreau
2012-10-01 22:53 ` [ 117/180] USB: echi-dbgp: increase the controller wait time to come out of halt Willy Tarreau
2012-10-01 22:53 ` [ 118/180] ALSA: mpu401: Fix missing initialization of irq field Willy Tarreau
2012-10-01 22:53 ` [ 119/180] futex: Test for pi_mutex on fault in futex_wait_requeue_pi() Willy Tarreau
2012-10-01 22:53 ` [ 120/180] futex: Fix bug in WARN_ON for NULL q.pi_state Willy Tarreau
2012-10-01 22:53 ` [ 121/180] futex: Forbid uaddr == uaddr2 in futex_wait_requeue_pi() Willy Tarreau
2012-10-01 22:53 ` [ 122/180] pcdp: use early_ioremap/early_iounmap to access pcdp table Willy Tarreau
2012-10-01 22:54 ` [ 123/180] mm: mmu_notifier: fix freed page still mapped in secondary MMU Willy Tarreau
2012-10-01 22:54 ` [ 124/180] fuse: verify all ioctl retry iov elements Willy Tarreau
2012-10-01 22:54 ` [ 125/180] xhci: Increase reset timeout for Renesas 720201 host Willy Tarreau
2012-10-01 22:54 ` [ 126/180] usb: serial: mos7840: Fixup mos7840_chars_in_buffer() Willy Tarreau
2012-10-01 22:54 ` [ 127/180] ALSA: hda - fix Copyright debug message Willy Tarreau
2012-10-01 22:54 ` [ 128/180] vfs: missed source of ->f_pos races Willy Tarreau
2012-10-01 22:54 ` [ 129/180] NFSv3: Ensure that do_proc_get_root() reports errors correctly Willy Tarreau
2012-10-01 22:54 ` [ 130/180] NFS: Alias the nfs module to nfs4 Willy Tarreau
2012-10-01 22:54 ` [ 131/180] svcrpc: fix svc_xprt_enqueue/svc_recv busy-looping Willy Tarreau
2012-10-01 22:54 ` [ 132/180] svcrpc: sends on closed socket should stop immediately Willy Tarreau
2012-10-01 22:54 ` [ 133/180] cciss: fix incorrect scsi status reporting Willy Tarreau
2012-10-04 22:49   ` Ben Hutchings
2012-10-04 23:27     ` Willy Tarreau
2012-10-01 22:54 ` [ 134/180] USB: CDC ACM: Fix NULL pointer dereference Willy Tarreau
2012-10-01 22:54 ` [ 135/180] Remove user-triggerable BUG from mpol_to_str Willy Tarreau
2012-10-01 22:54 ` [ 136/180] udf: Fix data corruption for files in ICB Willy Tarreau
2012-10-01 22:54 ` [ 137/180] ext3: Fix fdatasync() for files with only i_size changes Willy Tarreau
2012-10-01 22:54 ` [ 138/180] PARISC: Redefine ATOMIC_INIT and ATOMIC64_INIT to drop the casts Willy Tarreau
2012-10-01 22:54 ` [ 139/180] dccp: check ccid before dereferencing Willy Tarreau
2012-10-01 22:54 ` [ 140/180] ia64: Add accept4() syscall Willy Tarreau
2012-10-01 22:54 ` [ 141/180] tcp: do_tcp_sendpages() must try to push data out on oom conditions Willy Tarreau
2012-10-01 22:54 ` [ 142/180] tcp: drop SYN+FIN messages Willy Tarreau
2012-10-01 22:54 ` [ 143/180] xen: correctly check for pending events when restoring irq flags Willy Tarreau
2012-10-01 22:54 ` [ 144/180] x86, amd, xen: Avoid NULL pointer paravirt references Willy Tarreau
2012-10-01 22:54 ` [ 145/180] x86, tls: Off by one limit check Willy Tarreau
2012-10-01 22:54 ` [ 146/180] sparc64: Eliminate obsolete __handle_softirq() function Willy Tarreau
2012-10-01 22:54 ` [ 147/180] udf: Fortify loading of sparing table Willy Tarreau
2012-10-04 23:15   ` Ben Hutchings
2012-10-04 23:28     ` Willy Tarreau
2012-10-01 22:54 ` [ 148/180] mtd: cafe_nand: fix an & vs | mistake Willy Tarreau
2012-10-01 22:54 ` [ 149/180] epoll: introduce POLLFREE to flush ->signalfd_wqh before kfree() Willy Tarreau
2012-10-01 22:54 ` [ 150/180] epoll: ep_unregister_pollwait() can use the freed pwq->whead Willy Tarreau
2012-10-01 22:54 ` [ 151/180] epoll: limit paths Willy Tarreau
2012-10-01 22:54 ` [ 152/180] Dont limit non-nested epoll paths Willy Tarreau
2012-10-01 22:54 ` [ 153/180] epoll: clear the tfile_check_list on -ELOOP Willy Tarreau
2012-10-01 22:54 ` [ 154/180] random: Reorder struct entropy_store to remove padding on 64bits Willy Tarreau
2012-10-01 22:54 ` [ 155/180] random: update interface comments to reflect reality Willy Tarreau
2012-10-01 22:54 ` [ 156/180] random: simplify fips mode Willy Tarreau
2012-10-01 22:54 ` [ 157/180] x86, cpu: Add CPU flags for F16C and RDRND Willy Tarreau
2012-10-01 22:54 ` [ 158/180] x86, cpufeature: Update CPU feature RDRND to RDRAND Willy Tarreau
2012-10-01 22:54 ` [ 159/180] random: Add support for architectural random hooks Willy Tarreau
2012-10-01 22:54 ` [ 160/180] x86, random: Architectural inlines to get random integers with RDRAND Willy Tarreau
2012-10-01 22:54 ` [ 161/180] x86, random: Verify RDRAND functionality and allow it to be disabled Willy Tarreau
2012-10-01 22:54 ` [ 162/180] fix typo/thinko in get_random_bytes() Willy Tarreau
2012-10-01 22:54 ` [ 163/180] random: Use arch_get_random_int instead of cycle counter if avail Willy Tarreau
2012-10-01 22:54 ` [ 164/180] random: Use arch-specific RNG to initialize the entropy store Willy Tarreau
2012-10-01 22:54 ` [ 165/180] random: Adjust the number of loops when initializing Willy Tarreau
2012-10-01 22:54 ` [ 166/180] drivers/char/random.c: fix boot id uniqueness race Willy Tarreau
2012-10-01 22:54 ` [ 167/180] random: make add_interrupt_randomness() do something sane Willy Tarreau
2012-10-01 22:54 ` [ 168/180] random: use lockless techniques in the interrupt path Willy Tarreau
2012-10-01 22:54 ` [ 169/180] random: create add_device_randomness() interface Willy Tarreau
2012-10-01 22:54 ` [ 170/180] random: use the arch-specific rng in xfer_secondary_pool Willy Tarreau
2012-10-01 22:54 ` [ 171/180] random: add new get_random_bytes_arch() function Willy Tarreau
2012-10-01 22:54 ` [ 172/180] random: mix in architectural randomness in extract_buf() Willy Tarreau
2012-10-01 22:54 ` [ 173/180] MAINTAINERS: Theodore Tso is taking over the random driver Willy Tarreau
2012-10-01 22:54 ` [ 174/180] usb: feed USB device information to the /dev/random driver Willy Tarreau
2012-10-01 22:54 ` [ 175/180] net: feed /dev/random with the MAC address when registering a device Willy Tarreau
2012-10-01 22:54 ` [ 176/180] random: remove rand_initialize_irq() Willy Tarreau
2012-10-01 22:54 ` [ 177/180] random: Add comment to random_initialize() Willy Tarreau
2012-10-01 22:54 ` [ 178/180] rtc: wm831x: Feed the write counter into device_add_randomness() Willy Tarreau
2012-10-01 22:54 ` [ 179/180] mfd: wm831x: Feed the device UUID " Willy Tarreau
2012-10-01 22:54 ` [ 180/180] dmi: Feed DMI table to /dev/random driver Willy Tarreau

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=20121001225158.719221314@1wt.eu \
    --to=w@1wt.eu \
    --cc=colin.king@canonical.com \
    --cc=linux-kernel@vger.kernel.org \
    --cc=stable@vger.kernel.org \
    --cc=stefan.bader@canonical.com \
    --cc=tim.gardner@canonical.com \
    --cc=tyhicks@canonical.com \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).