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-input" in the body of a message to majordomo@xxxxxxxxxxxxxxx More majordomo info at http://vger.kernel.org/majordomo-info.html