diff options
author | Jeff Liu <jeff.liu@oracle.com> | 2013-01-30 16:32:43 +0800 |
---|---|---|
committer | David Sterba <dsterba@suse.cz> | 2013-02-26 19:24:14 +0100 |
commit | 63a44771a4a7ea1b4a36687bf8fe11f3bd54e87e (patch) | |
tree | 8c06bfa636e389dcfdf50436a1f49d068220a607 /utils.c | |
parent | c51b711fff2cfe5b67405731c17c8ffb694e1ddb (diff) |
btrfs-progs: refactor check_label()
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 from there to utils.[c|h], we can
do pre-checking against the input label string with it.
- Fix the label length check up from BTRFS_LABEL_SIZE to BTRFS_LABEL_SIZE - 1.
- Kill the check of label contains an invalid character, see below commits for detail:
79e0e445fc2365e47fc7f060d5a4445d37e184b8
btrfs-progs: kill check for /'s in labels.
Signed-off-by: Jie Liu <jeff.liu@oracle.com>
CC: David Sterba <dsterba@suse.cz>
CC: Gene Czarcinski <gene@czarc.net>
Diffstat (limited to 'utils.c')
-rw-r--r-- | utils.c | 14 |
1 files changed, 4 insertions, 10 deletions
@@ -1150,23 +1150,17 @@ char *__strncpy__null(char *dest, const char *src, size_t n) * Returns: 0 if everything is safe and usable -1 if the label is too long - -2 if the label contains an invalid character */ -int check_label(char *input) +static int check_label(const 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] == '\\') { - return -2; - } - } - return 0; } |