]> git.ipfire.org Git - thirdparty/systemd.git/commitdiff
parse-util: make parse_fd() return -EBADF
authorYu Watanabe <watanabe.yu+github@gmail.com>
Sat, 6 May 2023 05:11:08 +0000 (14:11 +0900)
committerDaan De Meyer <daan.j.demeyer@gmail.com>
Mon, 8 May 2023 07:49:55 +0000 (09:49 +0200)
The previous error code -ERANGE is slightly ambiguous, and use more
specific one. This also drops unnecessary error handlings.

Follow-up for 754d8b9c330150fdb3767491e24975f7dfe2a203 and
e652663a043cb80936bb12ad5c87766fc5150c24.

src/basic/parse-util.c
src/core/main.c
src/notify/notify.c
src/shared/bpf-program.c
src/shared/varlink.c
src/test/test-parse-util.c

index d6138f02958b0c5f4d7a9ed884e87ee6c09ad843..cbe5ad6a32eff8290c9d75fb96162ba1904b7edb 100644 (file)
@@ -343,7 +343,7 @@ int parse_fd(const char *t) {
                 return r;
 
         if (fd < 0)
-                return -ERANGE;
+                return -EBADF;
 
         return fd;
 }
index f36f6c4c9e9e3e5ffd4907e9d7b071a762a82419..5274bcc106fb8e3a98db176b3e8a354cc9929de8 100644 (file)
@@ -1003,10 +1003,8 @@ static int parse_argv(int argc, char *argv[]) {
                         FILE *f;
 
                         fd = parse_fd(optarg);
-                        if (fd == -ERANGE)
-                                return log_error_errno(fd, "Invalid serialization fd: %s", optarg);
                         if (fd < 0)
-                                return log_error_errno(fd, "Failed to parse deserialize option \"%s\": %m", optarg);
+                                return log_error_errno(fd, "Failed to parse serialization fd \"%s\": %m", optarg);
 
                         (void) fd_cloexec(fd, true);
 
index 8d8e6db072d77b9c516c504ce1479d6df6133ce6..1aecd0e781724d1c6d2f0f523eb7107c061b3fa5 100644 (file)
@@ -216,8 +216,6 @@ static int parse_argv(int argc, char *argv[]) {
                         int fdnr;
 
                         fdnr = parse_fd(optarg);
-                        if (fdnr == -ERANGE)
-                                return log_error_errno(fdnr, "File descriptor can't be negative: %s", optarg);
                         if (fdnr < 0)
                                 return log_error_errno(fdnr, "Failed to parse file descriptor: %s", optarg);
 
index d924a973ec80818b011de454fdd707a860e1b3cb..bbdd4f64ac827dd66856c74e3cde5bff26812208 100644 (file)
@@ -450,8 +450,6 @@ int bpf_program_deserialize_attachment(const char *v, FDSet *fds, BPFProgram **b
                 return -EINVAL;
 
         ifd = parse_fd(sfd);
-        if (ifd == -ERANGE)
-                return -EBADF;
         if (ifd < 0)
                 return r;
 
index a4936bff266927891c7944692e723b1d388d4005..ab97af57e2fe09a11719a23f02791b900315b21d 100644 (file)
@@ -3061,9 +3061,6 @@ int varlink_server_deserialize_one(VarlinkServer *s, const char *value, FDSet *f
         buf = strndupa_safe(v, n);
 
         fd = parse_fd(buf);
-        if (fd == -ERANGE)
-                return log_debug_errno(SYNTHETIC_ERRNO(EINVAL),
-                                       "VarlinkServerSocket varlink-server-socket-fd= has an invalid value: %s", buf);
         if (fd < 0)
                 return log_debug_errno(fd, "Unable to parse VarlinkServerSocket varlink-server-socket-fd=%s: %m", buf);
         if (!fdset_contains(fds, fd))
index 75fc3d9455c56e8a8bd239743bb5fc81448f9b6e..1ba8c8987fdfc5a39b2809bab669b4dafb7a54ee 100644 (file)
@@ -869,8 +869,8 @@ TEST(parse_fd) {
         assert_se(parse_fd("0") == 0);
         assert_se(parse_fd("1") == 1);
 
-        assert_se(parse_fd("-1") == -ERANGE);
-        assert_se(parse_fd("-3") == -ERANGE);
+        assert_se(parse_fd("-1") == -EBADF);
+        assert_se(parse_fd("-3") == -EBADF);
 
         assert_se(parse_fd("") == -EINVAL);
         assert_se(parse_fd("12.3") == -EINVAL);