fvogt requested changes to this revision.
fvogt added inline comments.
This revision now requires changes to proceed.

INLINE COMMENTS

> fdreceiver.cpp:42
> +        std::cerr << "Invalid socket address" << std::endl;
> +        return;
> +    }

Missing

  ::close(m_socketDes);
  m_socketDes = -1;

or just move it above the `m_socketDes` assignment.

> fdreceiver.cpp:60
>      }
> +    ::unlink(m_path.toStdString().c_str());
>  }

A quick question: Is it possible that there are two FdReceivers with the same 
pid?
In that case they would end up removing each other's sockets.

> file_unix.cpp:91
> +    // value and reset it after deleting socket file.
> +    int err = errno;
> +    QFile::remove(sockPath);

That looks like a hack. If errno is that important, save and keep it in a 
variable. Every call into a library can change errno, it's extremely volatile.

> sharefd_p.h:53
>      }
> +    bool error() const
> +    {

Just a suggestion: Remove `error()` and just return `nullptr` in `address()` in 
the error case.
That way it's not possible to use it accidentially.

> sharefd_p.h:66
> +            ::strncpy(a.sun_path, path.c_str(), sizeof(a.sun_path)-1);
> +        }
>          return a;

The socket permissions only work that way for linux, so if other OSs can use 
this code as well it's insecure and should `#error` out.

REPOSITORY
  R241 KIO

REVISION DETAIL
  https://phabricator.kde.org/D9966

To: chinmoyr, #frameworks, thiago, fvogt
Cc: ngraham, fvogt, lbeltrame, dfaure

Reply via email to