On Wed, 18 Oct 2017 22:53:04 -0700 Thiago Macieira <[email protected]> wrote:
> On Wednesday, 18 October 2017 07:05:46 PDT Matt Hoosier wrote: > > On Wed, Oct 18, 2017 at 4:23 AM, Quentin Glidic > > > > <[email protected]> wrote: > > > + fd = shm_open("/wayland-cursor-shared", O_CREAT | O_RDWR, 0); > > > + shm_unlink("/wayland-cursor-shared"); > > > > This seems to be a departure from the anonymous behavior that > > mkstemp() previously offered. shm_open() says that it will open an > > existing shared-memory object if that pathname already exists. Isn't > > there a race between one thread doing shm_open() and a different > > thread doing shm_unlink() such that you could accidentally end up with > > two different filedescriptors pointing at the same SHM object? > > There's another problem: this path is not unique to the calling user. That > means you need to defend against another user in the system actively trying > to > get to your files or forcing you to open the wrong file. > Yes, it looks like we do need to create a system-wide unique file name even with shm_open(). That is inherently racy as well, we cannot rely on our naming scheme to be fool-proof-collision-free with reasonable effort, so you should also use O_EXCL flag to make the call fail if the file already exists and try again with another name. Thanks, pq
pgpdadrKwws_Y.pgp
Description: OpenPGP digital signature
_______________________________________________ wayland-devel mailing list [email protected] https://lists.freedesktop.org/mailman/listinfo/wayland-devel
