Messages in this thread | | | Date | Thu, 11 Dec 2008 05:00:23 +0000 | From | Al Viro <> | Subject | Re: [PATCH] fix calls to request_module() |
| |
On Thu, Dec 11, 2008 at 01:23:36PM +0900, Nguyen Anh Quynh wrote:
> So I checked again by fixing the code that should be compiled > (sound/core/sound.c), and can confirm that without the patch we got > warning like below: > > sound/core/sound.c: In function 'snd_request_other': > sound/core/sound.c:91: warning: format not a string literal and no > format arguments
Ah, but that's different. Take a look at that warning and think _why_ it is given and what is it about. Getting an untrusted string as format argument is a real security hole, but it has nothing to do with a pile of cases in your patch.
FWIW, even in this case (where the warning is a false positive, BTW - the string passed there can have one of two values and both are safe) I would simply do switch(...) { case .... : request_module("snd-seq"); break; case .... : request_module("snd-timer"); break; } and that's it.
Slapping "%s" here actually obfuscates the code, without making it safer.
| |