On Tue, 2019-09-10 at 15:38 +0000, David Laight wrote: > From: Arnd Bergmann > > Sent: 10 September 2019 09:15 > ... > > > I am not sure how this would work, since the format parameters > > > can > > > changes depending on the FW string and the specific traces. > > > > Ah, so the format string comes from the firmware? I didn't look > > at the code in enough detail to understand why it's done like this, > > only enough to notice that it's rather unusual. > > If the format string comes from the firmware you really shouldn't > pass it to any standard printf function. > You must ensure that it doesn't contain any format effectors > that might dereference parameters. > (The code might try to do that.) > > Given that 'pointer' format effectors can't be used, the firmware > must also supply the relevant integer ones? > This should mean that all the processing is deferrable until the > trace record is read. > Point taken, i will discuss this with the team next week, since i am traveling this week. and we will provide a proper solution. for now, off the top of my head, FW strings and parameters are well defined and very simple, many of the problems here do not apply, but will verify. > 'noinline' just papers over the cracks. > Especially since vasprintf() is likely to use a lot of stack. Right i also tend to agree with noinline as a temporary solution until we address all the points provided here. > > David > > - > Registered Address Lakeside, Bramley Road, Mount Farm, Milton Keynes, > MK1 1PT, UK > Registration No: 1397386 (Wales)