Skip to contentSkip to conversation

kconfig: Avoid buffer underrun in choice input

PATCH In review Ben Hutchings 5 participants 7 messages Apr 23, 2011 – Apr 27, 2011

Subsystems (2)
lore
Share & tools
lore
#0 lore raw

PATCH 1/1 kconfig: Avoid buffer underrun in choice input

commit 40aee729b350672c2550640622416a855e27938f ('kconfig: fix default value for choice input') fixed some cases where kconfig would select the wrong option from a choice with a single valid option and thus enter an infinite loop.

However, this broke the test for user input of the form 'N?', because when kconfig selects the single valid option the input is zero-length and the test will read the byte before the input buffer. If this happens to contain '?' (as it will in a mips build on Debian unstable today) then kconfig again enters an infinite loop.

---
Roman has failed to respond to this after 5 weeks and one reminder, so please take it directly.

Ben.

 scripts/kconfig/conf.c |    2 +-
 1 files changed, 1 insertions(+), 1 deletions(-)
scripts/kconfig/conf.c +1 -1
index 659326c..006ad81 100644
@@ -332,7 +332,7 @@ static int conf_choice(struct menu *menu)
 		}
 		if (!child)
 			continue;
-		if (line[strlen(line) - 1] == '?') {
+		if (line[0] && line[strlen(line) - 1] == '?') {
 			print_help(child);
 			continue;
 		}
Signature · 1 line
1.7.4.1
#1 lore raw
Quoted 11 lines · Ben Hutchings

commit 40aee729b350672c2550640622416a855e27938f ('kconfig: fix default value for choice input') fixed some cases where kconfig would select the wrong option from a choice with a single valid option and thus enter an infinite loop.

However, this broke the test for user input of the form 'N?', because when kconfig selects the single valid option the input is zero-length and the test will read the byte before the input buffer. If this happens to contain '?' (as it will in a mips build on Debian unstable today) then kconfig again enters an infinite loop.

Quoted 5 lines

---
Roman has failed to respond to this after 5 weeks and one reminder, so please take it directly.

No-one has heard from Roman Zippel in several years. I have suggested Michal Marek to take over the maintainer role - as he in practice is the kconfig maintainer.

Sam

#2 lore raw
Quoted 18 lines · Sam Ravnborg
Quoted 11 lines · Ben Hutchings

commit 40aee729b350672c2550640622416a855e27938f ('kconfig: fix default value for choice input') fixed some cases where kconfig would select the wrong option from a choice with a single valid option and thus enter an infinite loop.

However, this broke the test for user input of the form 'N?', because when kconfig selects the single valid option the input is zero-length and the test will read the byte before the input buffer. If this happens to contain '?' (as it will in a mips build on Debian unstable today) then kconfig again enters an infinite loop.

Quoted 5 lines

---
Roman has failed to respond to this after 5 weeks and one reminder, so please take it directly.

Quoted 3 lines

No-one has heard from Roman Zippel in several years. I have suggested Michal Marek to take over the maintainer role - as he in practice is the kconfig maintainer.

Can someone please update MAINTAINERS then? What is the point of it if people don't update it for years?

Ben.

Signature · 2 lines
Ben Hutchings
Once a job is fouled up, anything done to improve it makes it worse.
#3 lore raw
Quoted 11 lines · Ben Hutchings
Quoted 7 lines · Sam Ravnborg
Quoted 2 lines · Ben Hutchings

Roman has failed to respond to this after 5 weeks and one reminder, so please take it directly.

No-one has heard from Roman Zippel in several years. I have suggested Michal Marek to take over the maintainer role - as he in practice is the kconfig maintainer.

Can someone please update MAINTAINERS then?  What is the point of it if people don't update it for years?

I have removed him from AFFS, HFS, and m68k.
I left the kbuild entry for the kbuild people.

Gr{oetje,eeting}s,

                        Geert

--
Geert Uytterhoeven -- There's lots of Linux beyond ia32 -- [email protected]

In personal conversations with technical people, I call myself a hacker. But when I'm talking to journalists I just say "programmer" or something like that. -- Linus Torvalds

#4 lore raw
In reply to Ben Hutchings
Quoted 11 lines · Ben Hutchings

commit 40aee729b350672c2550640622416a855e27938f ('kconfig: fix default value for choice input') fixed some cases where kconfig would select the wrong option from a choice with a single valid option and thus enter an infinite loop.

However, this broke the test for user input of the form 'N?', because when kconfig selects the single valid option the input is zero-length and the test will read the byte before the input buffer. If this happens to contain '?' (as it will in a mips build on Debian unstable today) then kconfig again enters an infinite loop.

Quoted 5 lines

---
Roman has failed to respond to this after 5 weeks and one reminder, so please take it directly.

I applied this on 8th April, see
http://www.spinics.net/lists/linux-kbuild/msg04431.html. Please check linux-next before reposting patches next time, now I either have to rewind the kconfig branch or let Linus merge it with a duplicate commit :-(.

Michal

#5 lore raw
Quoted 12 lines · Michal Marek
Quoted 11 lines · Ben Hutchings

commit 40aee729b350672c2550640622416a855e27938f ('kconfig: fix default value for choice input') fixed some cases where kconfig would select the wrong option from a choice with a single valid option and thus enter an infinite loop.

However, this broke the test for user input of the form 'N?', because when kconfig selects the single valid option the input is zero-length and the test will read the byte before the input buffer. If this happens to contain '?' (as it will in a mips build on Debian unstable today) then kconfig again enters an infinite loop.

Quoted 8 lines
Quoted 5 lines

---
Roman has failed to respond to this after 5 weeks and one reminder, so please take it directly.

I applied this on 8th April, see
http://www.spinics.net/lists/linux-kbuild/msg04431.html.

Sorry, I forgot that.

Quoted 3 lines

Please check
linux-next before reposting patches next time, now I either have to rewind the kconfig branch or let Linus merge it with a duplicate commit :-(.

But the fix belongs in this release (2.6.39), not the next. So I looked in Linus' tree.

Ben.

Signature · 2 lines
Ben Hutchings
Once a job is fouled up, anything done to improve it makes it worse.
#6 lore raw
In reply to Michal Marek
Quoted 5 lines · Michal Marek

I applied this on 8th April, see
http://www.spinics.net/lists/linux-kbuild/msg04431.html. Please check linux-next before reposting patches next time, now I either have to rewind the kconfig branch or let Linus merge it with a duplicate commit :-(.

Merging the occasional duplicate is normal flow, don't worry about it. I'd much rather see the occasional smaller diffstat due to a diff that got applied in both sides than I'd see people rebasing just to avoid some silly duplicate.

It's if two branches consistently have many duplicates that I react, because it tends to be some systematic error (often excessive rebasing, but it could be some "ownership" argument too)

The "occasionally the same fix made it through two different trees" is not just normal, it's _expected_ in distributed development. If it never happens, that's a sign that people are serializing overmuch.

Linus