Merge tag 'v0.19.4'
This commit is contained in:
@@ -127,7 +127,7 @@ public:
|
||||
* a local (UNIX domain) socket?
|
||||
*/
|
||||
bool IsLocal() const {
|
||||
return uid > 0;
|
||||
return uid >= 0;
|
||||
}
|
||||
|
||||
unsigned GetPermission() const {
|
||||
|
@@ -41,7 +41,7 @@ Client::AllowFile(Path path_fs, Error &error) const
|
||||
instance */
|
||||
return true;
|
||||
|
||||
if (uid <= 0) {
|
||||
if (uid < 0) {
|
||||
/* unauthenticated client */
|
||||
error.Set(ack_domain, ACK_ERROR_PERMISSION, "Access denied");
|
||||
return false;
|
||||
|
@@ -61,7 +61,16 @@ translate_uri(Client &client, const char *uri)
|
||||
CommandResult
|
||||
handle_add(Client &client, gcc_unused unsigned argc, char *argv[])
|
||||
{
|
||||
const char *const uri = translate_uri(client, argv[1]);
|
||||
const char *uri = argv[1];
|
||||
if (memcmp(uri, "/", 2) == 0)
|
||||
/* this URI is malformed, but some clients are buggy
|
||||
and use "add /" to add the whole database, which
|
||||
was never intended to work, but once did; in order
|
||||
to retain backwards compatibility, work around this
|
||||
here */
|
||||
uri = "";
|
||||
|
||||
uri = translate_uri(client, uri);
|
||||
if (uri == nullptr)
|
||||
return CommandResult::ERROR;
|
||||
|
||||
|
@@ -510,6 +510,13 @@ static const char *const opus_suffixes[] = {
|
||||
};
|
||||
|
||||
static const char *const opus_mime_types[] = {
|
||||
/* the official MIME type (RFC 5334) */
|
||||
"audio/ogg",
|
||||
|
||||
/* deprecated (RFC 5334) */
|
||||
"application/ogg",
|
||||
|
||||
/* deprecated; from an early draft */
|
||||
"audio/opus",
|
||||
nullptr
|
||||
};
|
||||
|
@@ -130,7 +130,7 @@ get_remote_uid(int fd)
|
||||
socklen_t len = sizeof (cred);
|
||||
|
||||
if (getsockopt(fd, SOL_SOCKET, SO_PEERCRED, &cred, &len) < 0)
|
||||
return 0;
|
||||
return -1;
|
||||
|
||||
return cred.uid;
|
||||
#else
|
||||
|
@@ -46,7 +46,11 @@ AllocatedPath
|
||||
AllocatedPath::FromUTF8(const char *path_utf8)
|
||||
{
|
||||
#ifdef HAVE_GLIB
|
||||
return AllocatedPath(Donate(), ::PathFromUTF8(path_utf8));
|
||||
char *path = ::PathFromUTF8(path_utf8);
|
||||
if (path == nullptr)
|
||||
return AllocatedPath::Null();
|
||||
|
||||
return AllocatedPath(Donate(), path);
|
||||
#else
|
||||
return FromFS(path_utf8);
|
||||
#endif
|
||||
|
Reference in New Issue
Block a user