Messages in this thread | | | Date | Tue, 12 Dec 2023 18:33:17 -0800 | From | Kees Cook <> | Subject | Re: [PATCH v2] scsi: fcoe: use sysfs_match_string over fcoe_parse_mode |
| |
On Tue, Dec 12, 2023 at 11:19:06PM +0000, Justin Stitt wrote: > Instead of copying @buf into a new buffer and carefully managing its > newline/null-terminating status, we can just use sysfs_match_string() > as it uses sysfs_streq() internally which handles newline/null-term: > > | /** > | * sysfs_streq - return true if strings are equal, modulo trailing newline > | * @s1: one string > | * @s2: another string > | * > | * This routine returns true iff two strings are equal, treating both > | * NUL and newline-then-NUL as equivalent string terminations. It's > | * geared for use with sysfs input strings, which generally terminate > | * with newlines but are compared against values without newlines. > | */ > | bool sysfs_streq(const char *s1, const char *s2) > | ... > > Then entirely drop the now unused fcoe_parse_mode, being careful to > change if condition from checking for FIP_CONN_TYPE_UNKNOWN to < 0 as > sysfs_match_string can return -EINVAL. Also check explicitly if > ctlr->mode is equal to FIP_CONN_TYPE_UNKNOWN -- this is probably > preferred to "<=" as the behavior is more obvious while maintaining > functionality. > > To get the compiler not to complain, make fip_conn_type_names > const char * const. Perhaps, this should also be done for > fcf_state_names. > > This also removes an instance of strncpy() which helps [1]. > > Link: https://github.com/KSPP/linux/issues/90 [1] > Cc: linux-hardening@vger.kernel.org > Signed-off-by: Justin Stitt <justinstitt@google.com>
Looks great; thanks!
Reviewed-by: Kees Cook <keescook@chromium.org>
-- Kees Cook
| |