[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index] Re: [Xen-devel] [PATCH 11/13] libxl: use pipe instead of temporary file for VNC viewer --autopass
On Tue, Dec 3, 2013 at 1:22 AM, Ian Jackson <Ian.Jackson@xxxxxxxxxxxxx> wrote: > Matthew Daley writes ("[PATCH 11/13] libxl: use pipe instead of temporary > file for VNC viewer --autopass"): >> Coverity was complaining about the permissions implicitly set on the >> temporary file used to pass the VNC password to the viewer when using >> the --autopass feature. By replacing the use of the temporary file >> with a pipe, we fix the problem (well, quiesce Coverity at least), tidy >> the code and remove the buildup of temporary file cruft all at once. > > I don't think this is a good idea. The VNC client may want to read > the file more than once. I know it's a handwavey argument, but doesn't passing the password through stdin (vs. giving an explicit filename) imply that the file could very well be a pipe (or at least unseekable)? > >> Coverity-ID: 1055958 > > I think this is a false positive. > > From mkstemp(3) on Debian wheezy: > > The file is created with permissions 0600, that is, read plus write for > owner only. (In glibc versions 2.06 and earlier, the file is created > with permissions 0666, that is, read and write for all users.) The > returned file descriptor provides both read and write access to the > file. The file is opened with the open(2) O_EXCL flag, guaranteeing > that the caller is the process that creates the file. > > From mkstemp(3) on FreeBSD 9.2-RELEASE: > > The mkstemp() function makes the same replacement to the template and > creates the template file, mode 0600, returning a file descriptor opened > for reading and writing. [...] > > I was going to say that if the standard spec doesn't have this > behaviour, it's a bug. But SuS agrees too. From > http://pubs.opengroup.org/onlinepubs/9699919799/functions/mkstemp.html: > > The mkstemp() function shall create the file, and obtain a file > descriptor for it, as if by a call to: > > open(pathname, O_RDWR|O_CREAT|O_EXCL, S_IRUSR|S_IWUSR) > > So I think Coverity is just wrong about this. Perhaps it thinks you > are using an old version of glibc with an (IMO outrageous) security > bug. My `man mkstemp` says: "In glibc versions 2.06 and earlier, the file is created with permissions 0666, that is, read and write for all users.". So, a long time ago, you could very well have been outraged. That said, I'm happy to drop this patch and tell Coverity to hush if that's preferable. - Matthew _______________________________________________ Xen-devel mailing list Xen-devel@xxxxxxxxxxxxx http://lists.xen.org/xen-devel
|
Lists.xenproject.org is hosted with RackSpace, monitoring our |