Uploaded image for project: 'Qt'
  1. Qt
  2. QTBUG-16090

QLocalSocket should support the abstract namespace on Linux

    XMLWordPrintable

Details

    • Android
    • 2e3f48637e2e4fbd99424a98f361a0df277ea351 (qt/qtbase/dev)

    Description

      man 7 UNIX:

      • abstract: an abstract socket address is distinguished by the fact
        that sun_path[0] is a null byte ('\0'). All of the remaining bytes
        in sun_path define the "name" of the socket. (Null bytes in the
        name have no special significance.) The name has no connection with
        file system pathnames. The socket's address in this namespace is
        given by the rest of the bytes in sun_path. When the address of an
        abstract socket is returned by getsockname(2), getpeername(2), and
        accept(2), its length is sizeof(struct sockaddr_un), and sun_path
        contains the abstract name. The abstract socket namespace is a non‐
        portable Linux extension.

      Note: The abstract socket namespace is a non‐portable Linux extension.

      In some secured Linux systems (chrooted environment, cgroup, nfs and so on ) there is no writable places at all. So some Qt programs does not work.

      I think, especially for linux, "abstract" sockets should be created instead of generic. Most of the modern programs for linux (DBus, Xorg, udev and many more).

      P.S. Please convert to suggestion for future release instead of closing bug as "invalid".

      Attachments

        Issue Links

          For Gerrit Dashboard: QTBUG-16090
          # Subject Branch Project Status CR V

          Activity

            People

              piotrmi Piotr Mikolajczyk
              socketpair@gmail.com Коренберг Марк
              Votes:
              7 Vote for this issue
              Watchers:
              17 Start watching this issue

              Dates

                Created:
                Updated:
                Resolved:

                Gerrit Reviews

                  There are no open Gerrit changes