]> git.ipfire.org Git - thirdparty/kernel/stable.git/commitdiff
fs/orangefs: Allow 2 more characters in do_c_string()
authorDan Carpenter <dan.carpenter@linaro.org>
Sat, 19 Jul 2025 14:19:10 +0000 (09:19 -0500)
committerGreg Kroah-Hartman <gregkh@linuxfoundation.org>
Fri, 15 Aug 2025 10:13:56 +0000 (12:13 +0200)
[ Upstream commit 2138e89cb066b40386b1d9ddd61253347d356474 ]

The do_k_string() and do_c_string() functions do essentially the same
thing which is they add a string and a comma onto the end of an existing
string.  At the end, the caller will overwrite the last comma with a
newline.  Later, in orangefs_kernel_debug_init(), we add a newline to
the string.

The change to do_k_string() is just cosmetic.  I moved the "- 1" to
the other side of the comparison and made it "+ 1".  This has no
effect on runtime, I just wanted the functions to match each other
and the rest of the file.

However in do_c_string(), I removed the "- 2" which allows us to print
two extra characters.  I noticed this issue while reviewing the code
and I doubt affects anything in real life.  My guess is that this was
double counting the comma and the newline.  The "+ 1" accounts for
the newline, and the caller will delete the final comma which ensures
there is enough space for the newline.

Removing the "- 2" lets us print 2 more characters, but mainly it makes
the code more consistent and understandable for reviewers.

Fixes: 44f4641073f1 ("orangefs: clean up debugfs globals")
Signed-off-by: Dan Carpenter <dan.carpenter@linaro.org>
Signed-off-by: Mike Marshall <hubcap@omnibond.com>
Signed-off-by: Sasha Levin <sashal@kernel.org>
fs/orangefs/orangefs-debugfs.c

index fa41db08848802780eecc7b0fcabfc5a8444b874..b57140ebfad0f7240fdddb93efcafcfb99dcfa9f 100644 (file)
@@ -728,8 +728,8 @@ static void do_k_string(void *k_mask, int index)
 
        if (*mask & s_kmod_keyword_mask_map[index].mask_val) {
                if ((strlen(kernel_debug_string) +
-                    strlen(s_kmod_keyword_mask_map[index].keyword))
-                       < ORANGEFS_MAX_DEBUG_STRING_LEN - 1) {
+                    strlen(s_kmod_keyword_mask_map[index].keyword) + 1)
+                       < ORANGEFS_MAX_DEBUG_STRING_LEN) {
                                strcat(kernel_debug_string,
                                       s_kmod_keyword_mask_map[index].keyword);
                                strcat(kernel_debug_string, ",");
@@ -756,7 +756,7 @@ static void do_c_string(void *c_mask, int index)
            (mask->mask2 & cdm_array[index].mask2)) {
                if ((strlen(client_debug_string) +
                     strlen(cdm_array[index].keyword) + 1)
-                       < ORANGEFS_MAX_DEBUG_STRING_LEN - 2) {
+                       < ORANGEFS_MAX_DEBUG_STRING_LEN) {
                                strcat(client_debug_string,
                                       cdm_array[index].keyword);
                                strcat(client_debug_string, ",");