Merge branch 'v0.23.x'
This commit is contained in:
4
NEWS
4
NEWS
@@ -71,6 +71,10 @@ ver 0.24 (not yet released)
|
|||||||
* require Meson 1.0
|
* require Meson 1.0
|
||||||
|
|
||||||
ver 0.23.17 (not yet released)
|
ver 0.23.17 (not yet released)
|
||||||
|
* storage
|
||||||
|
- nfs: require libnfs 4.0 or later
|
||||||
|
* database
|
||||||
|
- inotify: trigger update after symlink was created
|
||||||
* support libfmt 11.1
|
* support libfmt 11.1
|
||||||
|
|
||||||
ver 0.23.16 (2024/12/03)
|
ver 0.23.16 (2024/12/03)
|
||||||
|
@@ -12,7 +12,7 @@ Client::AllowFile(Path path_fs) const
|
|||||||
#ifdef _WIN32
|
#ifdef _WIN32
|
||||||
(void)path_fs;
|
(void)path_fs;
|
||||||
|
|
||||||
throw ProtocolError(ACK_ERROR_PERMISSION, "Access denied");
|
throw ProtocolError(ACK_ERROR_PERMISSION, "Access to local files not implemented on Windows");
|
||||||
#else
|
#else
|
||||||
if (uid >= 0 && (uid_t)uid == geteuid())
|
if (uid >= 0 && (uid_t)uid == geteuid())
|
||||||
/* always allow access if user runs his own MPD
|
/* always allow access if user runs his own MPD
|
||||||
@@ -21,12 +21,12 @@ Client::AllowFile(Path path_fs) const
|
|||||||
|
|
||||||
if (uid < 0)
|
if (uid < 0)
|
||||||
/* unauthenticated client */
|
/* 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);
|
const FileInfo fi(path_fs);
|
||||||
|
|
||||||
if (fi.GetUid() != (uid_t)uid && (fi.GetMode() & 0444) != 0444)
|
if (fi.GetUid() != (uid_t)uid && (fi.GetMode() & 0444) != 0444)
|
||||||
/* client is not owner */
|
/* 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
|
#endif
|
||||||
}
|
}
|
||||||
|
@@ -279,6 +279,10 @@ InotifyUpdate::OnInotify(int wd, unsigned mask, const char *)
|
|||||||
}
|
}
|
||||||
|
|
||||||
if ((mask & (IN_CLOSE_WRITE|IN_MOVE|IN_DELETE)) != 0 ||
|
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
|
/* at the maximum depth, we watch out for newly created
|
||||||
directories */
|
directories */
|
||||||
(directory.GetDepth() == max_depth &&
|
(directory.GetDepth() == max_depth &&
|
||||||
|
@@ -84,6 +84,7 @@ if zeroconf_dep.found()
|
|||||||
include_directories: inc,
|
include_directories: inc,
|
||||||
dependencies: [
|
dependencies: [
|
||||||
zeroconf_dep,
|
zeroconf_dep,
|
||||||
|
event_dep,
|
||||||
util_dep,
|
util_dep,
|
||||||
],
|
],
|
||||||
)
|
)
|
||||||
@@ -202,6 +203,7 @@ if neighbor_glue_dep.found()
|
|||||||
include_directories: inc,
|
include_directories: inc,
|
||||||
dependencies: [
|
dependencies: [
|
||||||
neighbor_glue_dep,
|
neighbor_glue_dep,
|
||||||
|
event_dep,
|
||||||
],
|
],
|
||||||
)
|
)
|
||||||
endif
|
endif
|
||||||
@@ -271,6 +273,7 @@ if enable_database
|
|||||||
'../src/LocateUri.cxx',
|
'../src/LocateUri.cxx',
|
||||||
include_directories: inc,
|
include_directories: inc,
|
||||||
dependencies: [
|
dependencies: [
|
||||||
|
event_dep,
|
||||||
log_dep,
|
log_dep,
|
||||||
tag_dep,
|
tag_dep,
|
||||||
fs_dep,
|
fs_dep,
|
||||||
@@ -307,6 +310,7 @@ if curl_dep.found()
|
|||||||
include_directories: inc,
|
include_directories: inc,
|
||||||
dependencies: [
|
dependencies: [
|
||||||
curl_dep,
|
curl_dep,
|
||||||
|
event_dep,
|
||||||
],
|
],
|
||||||
)
|
)
|
||||||
|
|
||||||
|
Reference in New Issue
Block a user