summaryrefslogtreecommitdiff
path: root/utils.c
diff options
context:
space:
mode:
authorJeff Liu <jeff.liu@oracle.com>2013-01-30 16:32:43 +0800
committerDavid Sterba <dsterba@suse.cz>2013-02-26 19:24:14 +0100
commit63a44771a4a7ea1b4a36687bf8fe11f3bd54e87e (patch)
tree8c06bfa636e389dcfdf50436a1f49d068220a607 /utils.c
parentc51b711fff2cfe5b67405731c17c8ffb694e1ddb (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.c14
1 files changed, 4 insertions, 10 deletions
diff --git a/utils.c b/utils.c
index d660507f..50e54532 100644
--- a/utils.c
+++ b/utils.c
@@ -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;
}