]> git.ipfire.org Git - thirdparty/kernel/stable.git/commitdiff
coredump: fix socket path validation
authorChristian Brauner <brauner@kernel.org>
Thu, 12 Jun 2025 13:25:17 +0000 (15:25 +0200)
committerChristian Brauner <brauner@kernel.org>
Mon, 16 Jun 2025 15:01:21 +0000 (17:01 +0200)
Make sure that we keep it extensible and well-formed.

Link: https://lore.kernel.org/20250612-work-coredump-massage-v1-3-315c0c34ba94@kernel.org
Signed-off-by: Christian Brauner <brauner@kernel.org>
fs/coredump.c

index 42ceb9db2a5a9fde69c95aafc69d012c18f27e76..70e37435eca956f338fd0ed3f6d60da18f0d3b73 100644 (file)
@@ -1399,9 +1399,17 @@ static inline bool check_coredump_socket(void)
        if (current->nsproxy->mnt_ns != init_task.nsproxy->mnt_ns)
                return false;
 
-       /* Must be an absolute path or the socket request. */
-       if (*(core_pattern + 1) != '/' && *(core_pattern + 1) != '@')
+       /* Must be an absolute path... */
+       if (core_pattern[1] != '/') {
+               /* ... or the socket request protocol... */
+               if (core_pattern[1] != '@')
+                       return false;
+               /* ... and if so must be an absolute path. */
+               if (core_pattern[2] != '/')
+                       return false;
+               /* Anything else is unsupported. */
                return false;
+       }
 
        return true;
 }