From patchwork Wed Sep 27 04:21:15 2017 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Wang Shilong X-Patchwork-Id: 818916 Return-Path: X-Original-To: patchwork-incoming@ozlabs.org Delivered-To: patchwork-incoming@ozlabs.org Authentication-Results: ozlabs.org; spf=none (mailfrom) smtp.mailfrom=vger.kernel.org (client-ip=209.132.180.67; helo=vger.kernel.org; envelope-from=linux-ext4-owner@vger.kernel.org; receiver=) Authentication-Results: ozlabs.org; dkim=pass (2048-bit key; unprotected) header.d=gmail.com header.i=@gmail.com header.b="Z8eJJLnP"; dkim-atps=neutral Received: from vger.kernel.org (vger.kernel.org [209.132.180.67]) by ozlabs.org (Postfix) with ESMTP id 3y24QS2Phzz9t1t for ; Wed, 27 Sep 2017 14:21:36 +1000 (AEST) Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1031670AbdI0EVf (ORCPT ); Wed, 27 Sep 2017 00:21:35 -0400 Received: from mail-pf0-f196.google.com ([209.85.192.196]:34941 "EHLO mail-pf0-f196.google.com" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1031435AbdI0EVe (ORCPT ); Wed, 27 Sep 2017 00:21:34 -0400 Received: by mail-pf0-f196.google.com with SMTP id i23so5881201pfi.2 for ; Tue, 26 Sep 2017 21:21:34 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20161025; h=from:to:cc:subject:date:message-id; bh=kZb+ouFNJMpLXW/TNws0DaWReX/3If7z05MAomOQ9CE=; b=Z8eJJLnPwE74MNgttgeElB7qLYil5mtZovwIyX5sLA32v7R8m4WjCkE+Lqzm2xuSOF 12ndJ+zzQIJ6hurjMjF41A1gxRJtYcX+C4qtksk9msc5CiWFh7KLNjCT2R7792rkZBp/ oFDYkHLnwsFXFBZfCr2/2zPQTW909M9/+AGZHohL81IwduRZHfHb4wILgeHkZshoGowk qnMp/X6OQHnqL5HjC4bO1C4hJyfpswEo2F1re2oOFGds0FE1ols1KvXjQBqJJopb6Wjn O6rwH4nSbBN3EkyTxFjvN4ZzbYwVn5xqbBB1AA5jaeOuOdTc/USr6XtlP4o66p0RFGla vYmg== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20161025; h=x-gm-message-state:from:to:cc:subject:date:message-id; bh=kZb+ouFNJMpLXW/TNws0DaWReX/3If7z05MAomOQ9CE=; b=LIWTncHmRTN64BmYvTapFNj4H53xcDPLYfB+4FcS6M/rgj6FXlGlL0l/ZZioiJCm0G plwxa/GHK0IGPEAwXdR9uA92z155XN9cGIUNkiHAA6AgaMVgX/rvOelyTx7tEUvZ6WIc mUtLmTNmbeQlvZn0DYPxTjdLPy5iROLj5b1p/jXUdf3YIx9Q9rQyWdNS20VeyvIdhvim 2VFn8O/1j4q7M3vd69MIPN5a4hMpWVMxF9JK4NiKFk9/aGJnc8QarnWt0bTACVNZGhFA FB4mN54Y658L1zVV72kL+oOB4t4gHDHm4PEuEYCR5QLs4bdnCW99Ww9eyQbx35Ngmnk/ Uoxg== X-Gm-Message-State: AHPjjUiaz02wUow8Tjpka/LdkG+mxiRZSm+A/fPa0Zvu98VjAxph2KUV CdcYVsuI6/AEJbM8HwV+ZMEgUX1vAvw= X-Google-Smtp-Source: AOwi7QBYLwRLvomOYHkU6EfXVnT65zuQraXkJrNZqwPA8KDtTQCTa/ymzlnJ8r/tKVUEmk2RGaGaNQ== X-Received: by 10.98.78.203 with SMTP id c194mr136138pfb.152.1506486094216; Tue, 26 Sep 2017 21:21:34 -0700 (PDT) Received: from localhost.localdomain (li1726-20.members.linode.com. [172.104.116.20]) by smtp.gmail.com with ESMTPSA id j14sm17168193pff.59.2017.09.26.21.21.30 (version=TLS1 cipher=AES128-SHA bits=128/128); Tue, 26 Sep 2017 21:21:33 -0700 (PDT) From: Wang Shilong X-Google-Original-From: Wang Shilong To: linux-ext4@vger.kernel.org Cc: sihara@ddn.com, Wang Shilong Subject: [PATCH] chattr: add maximum value check for project Date: Wed, 27 Sep 2017 12:21:15 +0800 Message-Id: <20170927042115.6711-1-wshilong@ddn.com> X-Mailer: git-send-email 2.13.5 (Apple Git-94) Sender: linux-ext4-owner@vger.kernel.org Precedence: bulk List-ID: X-Mailing-List: linux-ext4@vger.kernel.org From: Wang Shilong See following output: [root@mds03 client]# chattr -R +P -p 4294967296 testdir/ [root@mds03 client]# lsattr -dp testdir/ 0 ----------------P testdir/ [root@mds03 client]# chattr -R +P -p 4294967297 testdir/ [root@mds03 client]# lsattr -dp testdir/ 1 ----------------P testdir/ Reported-by: Shuichi Ihara Signed-off-by: Wang Shilong --- lib/ext2fs/ext2_fs.h | 2 ++ misc/chattr.c | 11 ++++++++--- misc/mke2fs.c | 2 -- 3 files changed, 10 insertions(+), 5 deletions(-) diff --git a/lib/ext2fs/ext2_fs.h b/lib/ext2fs/ext2_fs.h index 3b55000..99f89ec 100644 --- a/lib/ext2fs/ext2_fs.h +++ b/lib/ext2fs/ext2_fs.h @@ -75,6 +75,8 @@ */ #define EXT2_LINK_MAX 65000 +#define MAX_32_NUM ((((unsigned long long) 1) << 32) - 1) + /* * Macro-instructions used to manage several block sizes */ diff --git a/misc/chattr.c b/misc/chattr.c index a5b401a..bab20e8 100644 --- a/misc/chattr.c +++ b/misc/chattr.c @@ -152,13 +152,18 @@ static int decode_arg (int * i, int argc, char ** argv) if (*p == 'p') { (*i)++; if (*i >= argc) - usage (); - project = strtol (argv[*i], &tmp, 0); + usage(); + project = strtol(argv[*i], &tmp, 0); if (*tmp) { com_err (program_name, 0, _("bad project - %s\n"), argv[*i]); - usage (); + usage(); + } + if (project > MAX_32_NUM) { + com_err(program_name, 0, + _("Kernel does not support set project ID this large")); + exit(1); } set_project = 1; continue; diff --git a/misc/mke2fs.c b/misc/mke2fs.c index d585a9e..22812cd 100644 --- a/misc/mke2fs.c +++ b/misc/mke2fs.c @@ -63,8 +63,6 @@ extern int optind; #define STRIDE_LENGTH 8 -#define MAX_32_NUM ((((unsigned long long) 1) << 32) - 1) - #ifndef __sparc__ #define ZAP_BOOTBLOCK #endif