]> git.ipfire.org Git - thirdparty/kernel/linux.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)
committerMike Marshall <hubcap@omnibond.com>
Tue, 22 Jul 2025 16:39:29 +0000 (12:39 -0400)
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>
fs/orangefs/orangefs-debugfs.c

index e463d3c73533cd6d3e34fe14e245f7a1e25261f0..1c375fb650185c691d21ae3cfa5617f9f32d67e2 100644 (file)
@@ -769,8 +769,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, ",");
@@ -797,7 +797,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, ",");