[bug report] btrfs: change set_level() to bound the level passed in

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



Hello Dennis Zhou,

The patch a67dc67a2cb8: "btrfs: change set_level() to bound the level
passed in" from Jan 28, 2019, leads to the following static checker
warning:

	fs/btrfs/compression.c:1576 btrfs_compress_str2level()
	error: uninitialized symbol 'level'.

fs/btrfs/compression.c
    1566 unsigned int btrfs_compress_str2level(unsigned int type, const char *str)
    1567 {
    1568 	unsigned int level;
    1569 	int ret;
    1570 
    1571 	if (!type)
    1572 		return 0;
    1573 
    1574 	if (str[0] == ':') {
    1575 		ret = kstrtouint(str + 1, 10, &level);
--> 1576 		if (ret)
    1577 			level = 0;

I feel like if the user gives bad input then we should just return an
error code instead of picking a level.

    1578 	}

level is not initialized if the first character is not ':'.

    1579 
    1580 	level = btrfs_compress_op[type]->set_level(level);
    1581 
    1582 	return level;
    1583 }

regards,
dan carpenter



[Index of Archives]     [Linux Filesystem Development]     [Linux NFS]     [Linux NILFS]     [Linux USB Devel]     [Linux Audio Users]     [Yosemite News]     [Linux Kernel]     [Linux SCSI]

  Powered by Linux