btrfs-progs: refactor check_label()
PATCH v2 1/2 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 <[email protected]>
CC David Sterba <[email protected]>
CC Gene Czarcinski <[email protected]>
--- utils.c | 14 ++++---------- utils.h | 1 - 2 files changed, 4 insertions(+), 11 deletions(-)
utils.c +4 -10
@@ -1120,23 +1120,17 @@ char *pretty_sizes(u64 size)* 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 ; }
utils.h +0 -1
@@ -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);
Signature · 5 lines
1.7.9.5 -- To unsubscribe from this list: send the line "unsubscribe linux-btrfs" in the body of a message to [email protected] More majordomo info at http://vger.kernel.org/majordomo-