From patchwork Wed Mar 30 16:59:55 2016 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: "Navin P.S" X-Patchwork-Id: 603541 Return-Path: X-Original-To: patchwork-incoming@ozlabs.org Delivered-To: patchwork-incoming@ozlabs.org Received: from vger.kernel.org (vger.kernel.org [209.132.180.67]) by ozlabs.org (Postfix) with ESMTP id 3qZv8D2225z9sD3 for ; Thu, 31 Mar 2016 04:02:20 +1100 (AEDT) Authentication-Results: ozlabs.org; dkim=fail reason="signature verification failed" (2048-bit key; unprotected) header.d=gmail.com header.i=@gmail.com header.b=YG4KtNvB; dkim-atps=neutral Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1755750AbcC3RAi (ORCPT ); Wed, 30 Mar 2016 13:00:38 -0400 Received: from mail-vk0-f51.google.com ([209.85.213.51]:33629 "EHLO mail-vk0-f51.google.com" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1753127AbcC3RAf (ORCPT ); Wed, 30 Mar 2016 13:00:35 -0400 Received: by mail-vk0-f51.google.com with SMTP id k1so69378734vkb.0 for ; Wed, 30 Mar 2016 10:00:35 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20120113; h=mime-version:from:date:message-id:subject:to; bh=mjed5n0uKUyGQ7IumTuDljdlNq07eKG8lHM9P5BlnCk=; b=YG4KtNvBkcaIVn+6j+Ogn2ONJ23ulGI8X0l89KGXKrN57siIC1uPcz5J0mXPzZUyoX 0f8isPzJr5eeVc3KCid/pvAgrAOXR39Km1oViDnAmj3UAw3+WtY9C/dFHGzJPdLjRLMS 9O8tyWnKH6fkVV5DT7g3SuQgrHbEpoYNFVtGKc9VAn8XBLPW7VpHVytwinqDbdLevrx4 Wbm/vPbtRA+0KMvvkulIBR4zy09u1J7/AGTxc2NPNgwfCgudp/tMErzmWRXAeAROxfA1 /gcnsjVzeJAgpmleG1F/kMoMI9vLbLak/ZdgtRJfoWVXyLmw6nNL8z+A5VAbzILMlzPI duxA== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20130820; h=x-gm-message-state:mime-version:from:date:message-id:subject:to; bh=mjed5n0uKUyGQ7IumTuDljdlNq07eKG8lHM9P5BlnCk=; b=FiNKWQw9T93w03ehxMlNEyY1VPaTC1EbCUspd5XNpccCTbZAlaKUYV1GmdMOFE9Nbc 26wpvcS2RjpSBTIHWYDF0T77Sijir2NBGn5GHX5yZY6bBbjUQwoFRxA7wBrFaXcsGGDU yqkubUxixtqaciAEpNwzhR88yAsU0w4R5knrMRbfZsQ+dvEXwTWZ7BaHcs2ohG7nYD1q gRl8gLDQPdbRXKw8HOkdzpcpzpZtbd38RGmCVBOc+lBjLJev4JfoDvHhtqvJtz5uWDkX nAv66mUpMDlH+gL2YcDJrO0mmDOr7Bw+R7sbH2fVVphUg1N/fuHMN54fwIhwmJW+jDRa W7cg== X-Gm-Message-State: AD7BkJJard/O7IxVhxs/GJH7caDQH2EKRQpds4Iysmw0IdeqjoIF5nkOvKDlZ+yW4LysK39YcNOqbVj7yH9GTA== X-Received: by 10.159.33.206 with SMTP id 72mr5379128uac.14.1459357234707; Wed, 30 Mar 2016 10:00:34 -0700 (PDT) MIME-Version: 1.0 Received: by 10.31.149.13 with HTTP; Wed, 30 Mar 2016 09:59:55 -0700 (PDT) From: "Navin P.S" Date: Wed, 30 Mar 2016 22:29:55 +0530 Message-ID: Subject: [PATCH 1/1] Fix Ubsan error To: linux-ext4@vger.kernel.org Sender: linux-ext4-owner@vger.kernel.org Precedence: bulk List-ID: X-Mailing-List: linux-ext4@vger.kernel.org Hi, This fixes bugs 114701 and 112161 at bugzilla.kernel.org It is caused due to left shift by a negative value which is undefined. Since these values are not used after a negative shift the change introduces a break. Signed-off-by: Navin P.S --- fs/ext4/mballoc.c | 4 ++++ 1 file changed, 4 insertions(+) } @@ -2616,6 +2618,8 @@ int ext4_mb_init(struct super_block *sb) do { sbi->s_mb_offsets[i] = offset; sbi->s_mb_maxs[i] = max; + if (i > sb->s_blocksize_bits) + break; offset += 1 << (sb->s_blocksize_bits - i); max = max >> 1; i++; diff --git a/fs/ext4/mballoc.c b/fs/ext4/mballoc.c index 50e05df..8ccfcf7 100644 --- a/fs/ext4/mballoc.c +++ b/fs/ext4/mballoc.c @@ -1278,6 +1278,8 @@ static int mb_find_order_for_block(struct ext4_buddy *e4b, int block) /* this block is part of buddy of order 'order' */ return order; } + if (order > e4b->bd_blkbits) + break; bb += 1 << (e4b->bd_blkbits - order); order++;