Merge branch 'v0.23.x'
This commit is contained in:
@@ -12,7 +12,7 @@ Client::AllowFile(Path path_fs) const
|
||||
#ifdef _WIN32
|
||||
(void)path_fs;
|
||||
|
||||
throw ProtocolError(ACK_ERROR_PERMISSION, "Access denied");
|
||||
throw ProtocolError(ACK_ERROR_PERMISSION, "Access to local files not implemented on Windows");
|
||||
#else
|
||||
if (uid >= 0 && (uid_t)uid == geteuid())
|
||||
/* always allow access if user runs his own MPD
|
||||
@@ -21,12 +21,12 @@ Client::AllowFile(Path path_fs) const
|
||||
|
||||
if (uid < 0)
|
||||
/* unauthenticated client */
|
||||
throw ProtocolError(ACK_ERROR_PERMISSION, "Access denied");
|
||||
throw ProtocolError(ACK_ERROR_PERMISSION, "Access to local files via TCP is not allowed");
|
||||
|
||||
const FileInfo fi(path_fs);
|
||||
|
||||
if (fi.GetUid() != (uid_t)uid && (fi.GetMode() & 0444) != 0444)
|
||||
/* client is not owner */
|
||||
throw ProtocolError(ACK_ERROR_PERMISSION, "Access denied");
|
||||
throw ProtocolError(ACK_ERROR_PERMISSION, "Access to this local file denied due to file permissions");
|
||||
#endif
|
||||
}
|
||||
|
@@ -279,6 +279,10 @@ InotifyUpdate::OnInotify(int wd, unsigned mask, const char *)
|
||||
}
|
||||
|
||||
if ((mask & (IN_CLOSE_WRITE|IN_MOVE|IN_DELETE)) != 0 ||
|
||||
/* regular file or symlink was created; this check is only
|
||||
interesting for symlinks because regular files have
|
||||
usable content only after IN_CLOSE_WRITE */
|
||||
(mask & (IN_CREATE|IN_ISDIR)) == IN_CREATE ||
|
||||
/* at the maximum depth, we watch out for newly created
|
||||
directories */
|
||||
(directory.GetDepth() == max_depth &&
|
||||
|
Reference in New Issue
Block a user