* Re: [PATCH v1 2/3] mm: Fix benign off-by-one bugs
[not found] <87445e701574058b142e036c3b8a0f505086ab64.1758806023.git.alx@kernel.org>
@ 2025-11-10 17:47 ` kernel test robot
2025-11-10 22:06 ` Alejandro Colomar
2025-11-10 18:40 ` kernel test robot
2025-11-11 10:42 ` kernel test robot
2 siblings, 1 reply; 4+ messages in thread
From: kernel test robot @ 2025-11-10 17:47 UTC (permalink / raw)
To: Alejandro Colomar, linux-kernel
Cc: llvm, oe-kbuild-all, Alejandro Colomar, Marco Elver, Kees Cook,
Christopher Bazley, Alexander Potapenko, Dmitry Vyukov,
Jann Horn, Andrew Morton, Linux Memory Management List,
Rasmus Villemoes, Michal Hocko, Al Viro
Hi Alejandro,
kernel test robot noticed the following build errors:
[auto build test ERROR on akpm-mm/mm-everything]
[also build test ERROR on kees/for-next/pstore kees/for-next/kspp linus/master linux/master v6.18-rc5 next-20251110]
[If your patch is applied to the wrong git tree, kindly drop us a note.
And when submitting patch, we suggest to use '--base' as documented in
https://git-scm.com/docs/git-format-patch#_base_tree_information]
url: https://github.com/intel-lab-lkp/linux/commits/Alejandro-Colomar/array_size-h-Add-ARRAY_END/20251110-075203
base: https://git.kernel.org/pub/scm/linux/kernel/git/akpm/mm.git mm-everything
patch link: https://lore.kernel.org/r/87445e701574058b142e036c3b8a0f505086ab64.1758806023.git.alx%40kernel.org
patch subject: [PATCH v1 2/3] mm: Fix benign off-by-one bugs
config: loongarch-randconfig-001-20251110 (https://download.01.org/0day-ci/archive/20251111/202511110100.9uPtQqN1-lkp@intel.com/config)
compiler: clang version 22.0.0git (https://github.com/llvm/llvm-project 996639d6ebb86ff15a8c99b67f1c2e2117636ae7)
reproduce (this is a W=1 build): (https://download.01.org/0day-ci/archive/20251111/202511110100.9uPtQqN1-lkp@intel.com/reproduce)
If you fix the issue in a separate patch/commit (i.e. not just a new version of
the same patch/commit), kindly add following tags
| Reported-by: kernel test robot <lkp@intel.com>
| Closes: https://lore.kernel.org/oe-kbuild-all/202511110100.9uPtQqN1-lkp@intel.com/
All errors (new ones prefixed by >>):
>> mm/kfence/kfence_test.c:113:8: error: call to undeclared function 'ENDOF'; ISO C99 and later do not support implicit function declarations [-Wimplicit-function-declaration]
113 | end = ENDOF(expect[0]);
| ^
>> mm/kfence/kfence_test.c:113:6: error: incompatible integer to pointer conversion assigning to 'const char *' from 'int' [-Wint-conversion]
113 | end = ENDOF(expect[0]);
| ^ ~~~~~~~~~~~~~~~~
mm/kfence/kfence_test.c:143:6: error: incompatible integer to pointer conversion assigning to 'const char *' from 'int' [-Wint-conversion]
143 | end = ENDOF(expect[1]);
| ^ ~~~~~~~~~~~~~~~~
3 errors generated.
vim +/ENDOF +113 mm/kfence/kfence_test.c
94
95 /* Check observed report matches information in @r. */
96 static bool report_matches(const struct expect_report *r)
97 {
98 unsigned long addr = (unsigned long)r->addr;
99 bool ret = false;
100 unsigned long flags;
101 typeof(observed.lines) expect;
102 const char *end;
103 char *cur;
104
105 /* Doubled-checked locking. */
106 if (!report_available())
107 return false;
108
109 /* Generate expected report contents. */
110
111 /* Title */
112 cur = expect[0];
> 113 end = ENDOF(expect[0]);
114 switch (r->type) {
115 case KFENCE_ERROR_OOB:
116 cur += scnprintf(cur, end - cur, "BUG: KFENCE: out-of-bounds %s",
117 get_access_type(r));
118 break;
119 case KFENCE_ERROR_UAF:
120 cur += scnprintf(cur, end - cur, "BUG: KFENCE: use-after-free %s",
121 get_access_type(r));
122 break;
123 case KFENCE_ERROR_CORRUPTION:
124 cur += scnprintf(cur, end - cur, "BUG: KFENCE: memory corruption");
125 break;
126 case KFENCE_ERROR_INVALID:
127 cur += scnprintf(cur, end - cur, "BUG: KFENCE: invalid %s",
128 get_access_type(r));
129 break;
130 case KFENCE_ERROR_INVALID_FREE:
131 cur += scnprintf(cur, end - cur, "BUG: KFENCE: invalid free");
132 break;
133 }
134
135 scnprintf(cur, end - cur, " in %pS", r->fn);
136 /* The exact offset won't match, remove it; also strip module name. */
137 cur = strchr(expect[0], '+');
138 if (cur)
139 *cur = '\0';
140
141 /* Access information */
142 cur = expect[1];
143 end = ENDOF(expect[1]);
144
145 switch (r->type) {
146 case KFENCE_ERROR_OOB:
147 cur += scnprintf(cur, end - cur, "Out-of-bounds %s at", get_access_type(r));
148 addr = arch_kfence_test_address(addr);
149 break;
150 case KFENCE_ERROR_UAF:
151 cur += scnprintf(cur, end - cur, "Use-after-free %s at", get_access_type(r));
152 addr = arch_kfence_test_address(addr);
153 break;
154 case KFENCE_ERROR_CORRUPTION:
155 cur += scnprintf(cur, end - cur, "Corrupted memory at");
156 break;
157 case KFENCE_ERROR_INVALID:
158 cur += scnprintf(cur, end - cur, "Invalid %s at", get_access_type(r));
159 addr = arch_kfence_test_address(addr);
160 break;
161 case KFENCE_ERROR_INVALID_FREE:
162 cur += scnprintf(cur, end - cur, "Invalid free of");
163 break;
164 }
165
166 cur += scnprintf(cur, end - cur, " 0x%p", (void *)addr);
167
168 spin_lock_irqsave(&observed.lock, flags);
169 if (!report_available())
170 goto out; /* A new report is being captured. */
171
172 /* Finally match expected output to what we actually observed. */
173 ret = strstr(observed.lines[0], expect[0]) && strstr(observed.lines[1], expect[1]);
174 out:
175 spin_unlock_irqrestore(&observed.lock, flags);
176 return ret;
177 }
178
--
0-DAY CI Kernel Test Service
https://github.com/intel/lkp-tests/wiki
^ permalink raw reply [flat|nested] 4+ messages in thread
* Re: [PATCH v1 2/3] mm: Fix benign off-by-one bugs
[not found] <87445e701574058b142e036c3b8a0f505086ab64.1758806023.git.alx@kernel.org>
2025-11-10 17:47 ` [PATCH v1 2/3] mm: Fix benign off-by-one bugs kernel test robot
@ 2025-11-10 18:40 ` kernel test robot
2025-11-11 10:42 ` kernel test robot
2 siblings, 0 replies; 4+ messages in thread
From: kernel test robot @ 2025-11-10 18:40 UTC (permalink / raw)
To: Alejandro Colomar, linux-kernel
Cc: oe-kbuild-all, Alejandro Colomar, Marco Elver, Kees Cook,
Christopher Bazley, Alexander Potapenko, Dmitry Vyukov,
Jann Horn, Andrew Morton, Linux Memory Management List,
Rasmus Villemoes, Michal Hocko, Al Viro
Hi Alejandro,
kernel test robot noticed the following build errors:
[auto build test ERROR on akpm-mm/mm-everything]
[also build test ERROR on kees/for-next/pstore kees/for-next/kspp linus/master linux/master v6.18-rc5 next-20251110]
[If your patch is applied to the wrong git tree, kindly drop us a note.
And when submitting patch, we suggest to use '--base' as documented in
https://git-scm.com/docs/git-format-patch#_base_tree_information]
url: https://github.com/intel-lab-lkp/linux/commits/Alejandro-Colomar/array_size-h-Add-ARRAY_END/20251110-075203
base: https://git.kernel.org/pub/scm/linux/kernel/git/akpm/mm.git mm-everything
patch link: https://lore.kernel.org/r/87445e701574058b142e036c3b8a0f505086ab64.1758806023.git.alx%40kernel.org
patch subject: [PATCH v1 2/3] mm: Fix benign off-by-one bugs
config: i386-allmodconfig (https://download.01.org/0day-ci/archive/20251111/202511110204.IxlIobdQ-lkp@intel.com/config)
compiler: gcc-14 (Debian 14.2.0-19) 14.2.0
reproduce (this is a W=1 build): (https://download.01.org/0day-ci/archive/20251111/202511110204.IxlIobdQ-lkp@intel.com/reproduce)
If you fix the issue in a separate patch/commit (i.e. not just a new version of
the same patch/commit), kindly add following tags
| Reported-by: kernel test robot <lkp@intel.com>
| Closes: https://lore.kernel.org/oe-kbuild-all/202511110204.IxlIobdQ-lkp@intel.com/
All errors (new ones prefixed by >>):
mm/kfence/kfence_test.c: In function 'report_matches':
>> mm/kfence/kfence_test.c:113:15: error: implicit declaration of function 'ENDOF' [-Wimplicit-function-declaration]
113 | end = ENDOF(expect[0]);
| ^~~~~
>> mm/kfence/kfence_test.c:113:13: error: assignment to 'const char *' from 'int' makes pointer from integer without a cast [-Wint-conversion]
113 | end = ENDOF(expect[0]);
| ^
mm/kfence/kfence_test.c:143:13: error: assignment to 'const char *' from 'int' makes pointer from integer without a cast [-Wint-conversion]
143 | end = ENDOF(expect[1]);
| ^
vim +/ENDOF +113 mm/kfence/kfence_test.c
94
95 /* Check observed report matches information in @r. */
96 static bool report_matches(const struct expect_report *r)
97 {
98 unsigned long addr = (unsigned long)r->addr;
99 bool ret = false;
100 unsigned long flags;
101 typeof(observed.lines) expect;
102 const char *end;
103 char *cur;
104
105 /* Doubled-checked locking. */
106 if (!report_available())
107 return false;
108
109 /* Generate expected report contents. */
110
111 /* Title */
112 cur = expect[0];
> 113 end = ENDOF(expect[0]);
114 switch (r->type) {
115 case KFENCE_ERROR_OOB:
116 cur += scnprintf(cur, end - cur, "BUG: KFENCE: out-of-bounds %s",
117 get_access_type(r));
118 break;
119 case KFENCE_ERROR_UAF:
120 cur += scnprintf(cur, end - cur, "BUG: KFENCE: use-after-free %s",
121 get_access_type(r));
122 break;
123 case KFENCE_ERROR_CORRUPTION:
124 cur += scnprintf(cur, end - cur, "BUG: KFENCE: memory corruption");
125 break;
126 case KFENCE_ERROR_INVALID:
127 cur += scnprintf(cur, end - cur, "BUG: KFENCE: invalid %s",
128 get_access_type(r));
129 break;
130 case KFENCE_ERROR_INVALID_FREE:
131 cur += scnprintf(cur, end - cur, "BUG: KFENCE: invalid free");
132 break;
133 }
134
135 scnprintf(cur, end - cur, " in %pS", r->fn);
136 /* The exact offset won't match, remove it; also strip module name. */
137 cur = strchr(expect[0], '+');
138 if (cur)
139 *cur = '\0';
140
141 /* Access information */
142 cur = expect[1];
143 end = ENDOF(expect[1]);
144
145 switch (r->type) {
146 case KFENCE_ERROR_OOB:
147 cur += scnprintf(cur, end - cur, "Out-of-bounds %s at", get_access_type(r));
148 addr = arch_kfence_test_address(addr);
149 break;
150 case KFENCE_ERROR_UAF:
151 cur += scnprintf(cur, end - cur, "Use-after-free %s at", get_access_type(r));
152 addr = arch_kfence_test_address(addr);
153 break;
154 case KFENCE_ERROR_CORRUPTION:
155 cur += scnprintf(cur, end - cur, "Corrupted memory at");
156 break;
157 case KFENCE_ERROR_INVALID:
158 cur += scnprintf(cur, end - cur, "Invalid %s at", get_access_type(r));
159 addr = arch_kfence_test_address(addr);
160 break;
161 case KFENCE_ERROR_INVALID_FREE:
162 cur += scnprintf(cur, end - cur, "Invalid free of");
163 break;
164 }
165
166 cur += scnprintf(cur, end - cur, " 0x%p", (void *)addr);
167
168 spin_lock_irqsave(&observed.lock, flags);
169 if (!report_available())
170 goto out; /* A new report is being captured. */
171
172 /* Finally match expected output to what we actually observed. */
173 ret = strstr(observed.lines[0], expect[0]) && strstr(observed.lines[1], expect[1]);
174 out:
175 spin_unlock_irqrestore(&observed.lock, flags);
176 return ret;
177 }
178
--
0-DAY CI Kernel Test Service
https://github.com/intel/lkp-tests/wiki
^ permalink raw reply [flat|nested] 4+ messages in thread
* Re: [PATCH v1 2/3] mm: Fix benign off-by-one bugs
2025-11-10 17:47 ` [PATCH v1 2/3] mm: Fix benign off-by-one bugs kernel test robot
@ 2025-11-10 22:06 ` Alejandro Colomar
0 siblings, 0 replies; 4+ messages in thread
From: Alejandro Colomar @ 2025-11-10 22:06 UTC (permalink / raw)
To: kernel test robot
Cc: linux-kernel, llvm, oe-kbuild-all, Marco Elver, Kees Cook,
Christopher Bazley, Alexander Potapenko, Dmitry Vyukov,
Jann Horn, Andrew Morton, Linux Memory Management List,
Rasmus Villemoes, Michal Hocko, Al Viro
[-- Attachment #1: Type: text/plain, Size: 1076 bytes --]
Hi,
On Tue, Nov 11, 2025 at 01:47:19AM +0800, kernel test robot wrote:
> kernel test robot noticed the following build errors:
[...]
> >> mm/kfence/kfence_test.c:113:8: error: call to undeclared function 'ENDOF'; ISO C99 and later do not support implicit function declarations [-Wimplicit-function-declaration]
> 113 | end = ENDOF(expect[0]);
> | ^
> >> mm/kfence/kfence_test.c:113:6: error: incompatible integer to pointer conversion assigning to 'const char *' from 'int' [-Wint-conversion]
> 113 | end = ENDOF(expect[0]);
> | ^ ~~~~~~~~~~~~~~~~
> mm/kfence/kfence_test.c:143:6: error: incompatible integer to pointer conversion assigning to 'const char *' from 'int' [-Wint-conversion]
> 143 | end = ENDOF(expect[1]);
> | ^ ~~~~~~~~~~~~~~~~
> 3 errors generated.
I'm pretty sure I tested this some months ago. I'll test again...
Have a lovely night!
Alex
--
<https://www.alejandro-colomar.es>
Use port 80 (that is, <...:80/>).
[-- Attachment #2: signature.asc --]
[-- Type: application/pgp-signature, Size: 833 bytes --]
^ permalink raw reply [flat|nested] 4+ messages in thread
* Re: [PATCH v1 2/3] mm: Fix benign off-by-one bugs
[not found] <87445e701574058b142e036c3b8a0f505086ab64.1758806023.git.alx@kernel.org>
2025-11-10 17:47 ` [PATCH v1 2/3] mm: Fix benign off-by-one bugs kernel test robot
2025-11-10 18:40 ` kernel test robot
@ 2025-11-11 10:42 ` kernel test robot
2 siblings, 0 replies; 4+ messages in thread
From: kernel test robot @ 2025-11-11 10:42 UTC (permalink / raw)
To: Alejandro Colomar, linux-kernel
Cc: oe-kbuild-all, Alejandro Colomar, Marco Elver, Kees Cook,
Christopher Bazley, Alexander Potapenko, Dmitry Vyukov,
Jann Horn, Andrew Morton, Linux Memory Management List,
Rasmus Villemoes, Michal Hocko, Al Viro
Hi Alejandro,
kernel test robot noticed the following build warnings:
[auto build test WARNING on akpm-mm/mm-everything]
[also build test WARNING on kees/for-next/pstore kees/for-next/kspp linus/master linux/master v6.18-rc5 next-20251111]
[If your patch is applied to the wrong git tree, kindly drop us a note.
And when submitting patch, we suggest to use '--base' as documented in
https://git-scm.com/docs/git-format-patch#_base_tree_information]
url: https://github.com/intel-lab-lkp/linux/commits/Alejandro-Colomar/array_size-h-Add-ARRAY_END/20251110-075203
base: https://git.kernel.org/pub/scm/linux/kernel/git/akpm/mm.git mm-everything
patch link: https://lore.kernel.org/r/87445e701574058b142e036c3b8a0f505086ab64.1758806023.git.alx%40kernel.org
patch subject: [PATCH v1 2/3] mm: Fix benign off-by-one bugs
config: arm64-randconfig-002-20251111 (https://download.01.org/0day-ci/archive/20251111/202511111838.DEnuGlic-lkp@intel.com/config)
compiler: aarch64-linux-gcc (GCC) 11.5.0
reproduce (this is a W=1 build): (https://download.01.org/0day-ci/archive/20251111/202511111838.DEnuGlic-lkp@intel.com/reproduce)
If you fix the issue in a separate patch/commit (i.e. not just a new version of
the same patch/commit), kindly add following tags
| Reported-by: kernel test robot <lkp@intel.com>
| Closes: https://lore.kernel.org/oe-kbuild-all/202511111838.DEnuGlic-lkp@intel.com/
All warnings (new ones prefixed by >>):
mm/kfence/kfence_test.c: In function 'report_matches':
mm/kfence/kfence_test.c:113:15: error: implicit declaration of function 'ENDOF' [-Werror=implicit-function-declaration]
113 | end = ENDOF(expect[0]);
| ^~~~~
>> mm/kfence/kfence_test.c:113:13: warning: assignment to 'const char *' from 'int' makes pointer from integer without a cast [-Wint-conversion]
113 | end = ENDOF(expect[0]);
| ^
mm/kfence/kfence_test.c:143:13: warning: assignment to 'const char *' from 'int' makes pointer from integer without a cast [-Wint-conversion]
143 | end = ENDOF(expect[1]);
| ^
cc1: some warnings being treated as errors
vim +113 mm/kfence/kfence_test.c
94
95 /* Check observed report matches information in @r. */
96 static bool report_matches(const struct expect_report *r)
97 {
98 unsigned long addr = (unsigned long)r->addr;
99 bool ret = false;
100 unsigned long flags;
101 typeof(observed.lines) expect;
102 const char *end;
103 char *cur;
104
105 /* Doubled-checked locking. */
106 if (!report_available())
107 return false;
108
109 /* Generate expected report contents. */
110
111 /* Title */
112 cur = expect[0];
> 113 end = ENDOF(expect[0]);
114 switch (r->type) {
115 case KFENCE_ERROR_OOB:
116 cur += scnprintf(cur, end - cur, "BUG: KFENCE: out-of-bounds %s",
117 get_access_type(r));
118 break;
119 case KFENCE_ERROR_UAF:
120 cur += scnprintf(cur, end - cur, "BUG: KFENCE: use-after-free %s",
121 get_access_type(r));
122 break;
123 case KFENCE_ERROR_CORRUPTION:
124 cur += scnprintf(cur, end - cur, "BUG: KFENCE: memory corruption");
125 break;
126 case KFENCE_ERROR_INVALID:
127 cur += scnprintf(cur, end - cur, "BUG: KFENCE: invalid %s",
128 get_access_type(r));
129 break;
130 case KFENCE_ERROR_INVALID_FREE:
131 cur += scnprintf(cur, end - cur, "BUG: KFENCE: invalid free");
132 break;
133 }
134
135 scnprintf(cur, end - cur, " in %pS", r->fn);
136 /* The exact offset won't match, remove it; also strip module name. */
137 cur = strchr(expect[0], '+');
138 if (cur)
139 *cur = '\0';
140
141 /* Access information */
142 cur = expect[1];
143 end = ENDOF(expect[1]);
144
145 switch (r->type) {
146 case KFENCE_ERROR_OOB:
147 cur += scnprintf(cur, end - cur, "Out-of-bounds %s at", get_access_type(r));
148 addr = arch_kfence_test_address(addr);
149 break;
150 case KFENCE_ERROR_UAF:
151 cur += scnprintf(cur, end - cur, "Use-after-free %s at", get_access_type(r));
152 addr = arch_kfence_test_address(addr);
153 break;
154 case KFENCE_ERROR_CORRUPTION:
155 cur += scnprintf(cur, end - cur, "Corrupted memory at");
156 break;
157 case KFENCE_ERROR_INVALID:
158 cur += scnprintf(cur, end - cur, "Invalid %s at", get_access_type(r));
159 addr = arch_kfence_test_address(addr);
160 break;
161 case KFENCE_ERROR_INVALID_FREE:
162 cur += scnprintf(cur, end - cur, "Invalid free of");
163 break;
164 }
165
166 cur += scnprintf(cur, end - cur, " 0x%p", (void *)addr);
167
168 spin_lock_irqsave(&observed.lock, flags);
169 if (!report_available())
170 goto out; /* A new report is being captured. */
171
172 /* Finally match expected output to what we actually observed. */
173 ret = strstr(observed.lines[0], expect[0]) && strstr(observed.lines[1], expect[1]);
174 out:
175 spin_unlock_irqrestore(&observed.lock, flags);
176 return ret;
177 }
178
--
0-DAY CI Kernel Test Service
https://github.com/intel/lkp-tests/wiki
^ permalink raw reply [flat|nested] 4+ messages in thread
end of thread, other threads:[~2025-11-11 10:42 UTC | newest]
Thread overview: 4+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
[not found] <87445e701574058b142e036c3b8a0f505086ab64.1758806023.git.alx@kernel.org>
2025-11-10 17:47 ` [PATCH v1 2/3] mm: Fix benign off-by-one bugs kernel test robot
2025-11-10 22:06 ` Alejandro Colomar
2025-11-10 18:40 ` kernel test robot
2025-11-11 10:42 ` kernel test robot
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox