Re: [PATCH] hid: Logitech G13 driver 0.0.4

From: Jiri Kosina
Date: Mon Jan 25 2010 - 11:59:11 EST


On Mon, 25 Jan 2010, Rick L. Vinyard, Jr. wrote:

> > Am Mittwoch, 20. Januar 2010 21:47:22 schrieb Rick L. Vinyard Jr.:
> >> + if (copy_from_user(dst, buf, count))
> >> + err = -EFAULT;
> >> +
> >> + if (!err)
> >> + *ppos += count;
> >> +
> >> + g13_fb_update(par);
> >> +
> >> + return (err) ? err : count;
> >
> > Do you really want to go on if you get -EFAULT?
> >
>
> Since the hecubafb driver (which I based this portion of the g13 driver
> on) uses the same approach I tried to justify it myself when I first saw
> it.
>
> I don't know if this was the intent of the hecubafb author, but this is
> the way I saw it.
>
> By this point the copy_from_user() has failed. If it resulted in a partial
> copy to dst then continuing on to an update can't hurt, and would reduce
> display jitter if a re-write occurs from userspace. If a re-write doesn't
> occur the virtual framebuffer is hosed anyways as dst is is the underlying
> framebuffer.
>
> Given that, the worst-case consequence seems to be an unnecessary update
> to the device display.

Well, it's quite questionable (and I'd say unexpected) behavior to go on
even if userspace passes wild pointers to kernel.

--
Jiri Kosina
SUSE Labs, Novell Inc.
--
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majordomo@xxxxxxxxxxxxxxx
More majordomo info at http://vger.kernel.org/majordomo-info.html
Please read the FAQ at http://www.tux.org/lkml/