RE: [PATCH v3 0/4] Make sscanf() stricter

From: David Laight
Date: Wed Jun 14 2023 - 04:24:06 EST


From: Demi Marie Obenour
> Sent: 13 June 2023 16:35
>
> On Tue, Jun 13, 2023 at 01:02:59PM +0000, David Laight wrote:
> > From: Demi Marie Obenour
> > > Sent: 12 June 2023 22:23
> > ....
> > > sscanf(), except to the extent that -Werror=format can keep working.
> > > Userspace sscanf() is almost useless: it has undefined behavior on
> > > integer overflow and swallows spaces that should usually be rejected.
> >
> > scanf() is designed for parsing space separated data.
> > Eating spaces it part of its job description.
> >
> > David
>
> In this case I would prefer to have two versions: one that eats spaces
> and one that does not. For instance, I don’t think any user of
> xenbus_scanf() wants the space-swallowing behavior. This can be worked
> around in xenbus_scanf(), of course, by having it reject strings with
> spaces (as determened by isspace()) before calling vsscanf().

What sort of formats and data are being used?
The "%s" format terminates on whitespace.
Even stroul() (and friends) will skip leading whitespace.

David

-
Registered Address Lakeside, Bramley Road, Mount Farm, Milton Keynes, MK1 1PT, UK
Registration No: 1397386 (Wales)