All of lore.kernel.org
 help / color / mirror / Atom feed
From: Jeff Liu <jeff.liu@oracle.com>
To: linux-btrfs@vger.kernel.org
Cc: dsterba@suse.cz, Gene Czarcinski <gene@czarc.net>
Subject: [PATCH 1/2] btrfs-progs: refactor check_label()
Date: Tue, 29 Jan 2013 14:24:12 +0800	[thread overview]
Message-ID: <51076B0C.2060602@oracle.com> (raw)
In-Reply-To: <51076B08.2040709@oracle.com>

Refactor check_label().

Make it be static at first, this is a preparation step since we'll remove
btrfslabel.[c|h] and move those functions at them to utils.[c|h], we can do
pre-checking against the input label string with it.

Also, fix the input lable length verfication from BTRFS_LABEL_SIZE to
BTRFS_LABEL_SIZE - 1.

Signed-off-by: Jie Liu <jeff.liu@oracle.com>
CC: David Sterba <dsterba@suse.cz>
CC: Gene Czarcinski <gene@czarc.net>
---
 utils.c |    8 ++++++--
 utils.h |    1 -
 2 files changed, 6 insertions(+), 3 deletions(-)

diff --git a/utils.c b/utils.c
index d59bca3..034da8f 100644
--- a/utils.c
+++ b/utils.c
@@ -1122,17 +1122,21 @@ char *pretty_sizes(u64 size)
       -1    if the label is too long
       -2    if the label contains an invalid character
  */
-int check_label(char *input)
+static int check_label(char *input)
 {
        int i;
        int len = strlen(input);
 
-       if (len > BTRFS_LABEL_SIZE) {
+       if (len > BTRFS_LABEL_SIZE - 1) {
+		fprintf(stderr, "ERROR: Label %s is too long (max %d)\n",
+			input, BTRFS_LABEL_SIZE - 1);
                return -1;
        }
 
        for (i = 0; i < len; i++) {
                if (input[i] == '/' || input[i] == '\\') {
+			fprintf(stderr, "ERROR: Label %s contains invalid "
+				"characters\n", input);
                        return -2;
                }
        }
diff --git a/utils.h b/utils.h
index 8750f28..a0b782b 100644
--- a/utils.h
+++ b/utils.h
@@ -42,7 +42,6 @@ int check_mounted_where(int fd, const char *file, char *where, int size,
 int btrfs_device_already_in_root(struct btrfs_root *root, int fd,
 				 int super_offset);
 char *pretty_sizes(u64 size);
-int check_label(char *input);
 int get_mountpt(char *dev, char *mntpt, size_t size);
 
 int btrfs_scan_block_devices(int run_ioctl);
-- 
1.7.9.5

  reply	other threads:[~2013-01-29  6:25 UTC|newest]

Thread overview: 7+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2013-01-29  6:24 [PATCH 0/2] btrfs-progs: btrfslabel source code consolidation Jeff Liu
2013-01-29  6:24 ` Jeff Liu [this message]
2013-01-29 15:19   ` [PATCH 1/2] btrfs-progs: refactor check_label() David Sterba
2013-01-29 16:52     ` Jeff Liu
2013-01-29  6:24 ` [PATCH 2/2] btrfs-progs: remove btrfslabel.[c|h] Jeff Liu
2013-01-29 10:26   ` Stefan Behrens
2013-01-29 10:28     ` Jeff Liu

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=51076B0C.2060602@oracle.com \
    --to=jeff.liu@oracle.com \
    --cc=dsterba@suse.cz \
    --cc=gene@czarc.net \
    --cc=linux-btrfs@vger.kernel.org \
    /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 an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.