]> git.ipfire.org Git - thirdparty/systemd.git/commitdiff
tree-wide: unsetenv cannot fail
authorZbigniew Jędrzejewski-Szmek <zbyszek@in.waw.pl>
Tue, 10 Nov 2020 11:14:28 +0000 (12:14 +0100)
committerZbigniew Jędrzejewski-Szmek <zbyszek@in.waw.pl>
Tue, 10 Nov 2020 14:52:32 +0000 (15:52 +0100)
... when called with a valid environment variable name. This means that
any time we call it with a fixed string, it is guaranteed to return 0.
(Also when the variable is not present in the environment block.)

src/core/main.c
src/home/homectl.c
src/libsystemd/sd-daemon/sd-daemon.c
src/test/test-execute.c
src/test/test-path-util.c
src/test/test-time-util.c
src/udev/udevd.c
src/userdb/userdbctl.c

index c08f541bc130000110793e23dcb9c74da1b6b1d5..a280b756ffd493cfc6ed1fd71a2f1aef376e6e3c 100644 (file)
@@ -1418,9 +1418,8 @@ static int fixup_environment(void) {
                 return -errno;
 
         /* The kernels sets HOME=/ for init. Let's undo this. */
-        if (path_equal_ptr(getenv("HOME"), "/") &&
-            unsetenv("HOME") < 0)
-                log_warning_errno(errno, "Failed to unset $HOME: %m");
+        if (path_equal_ptr(getenv("HOME"), "/"))
+                assert_se(unsetenv("HOME") == 0);
 
         return 0;
 }
index 470e05b24ea772b839f29e70616667dafd17df89..7cfda7ed2fd3321b3b93782033b1a9a3fe8c37b3 100644 (file)
@@ -215,9 +215,7 @@ static int acquire_existing_password(const char *user_name, UserRecord *hr, bool
                         return log_error_errno(r, "Failed to store password: %m");
 
                 string_erase(e);
-
-                if (unsetenv("PASSWORD") < 0)
-                        return log_error_errno(errno, "Failed to unset $PASSWORD: %m");
+                assert_se(unsetenv("PASSWORD") == 0);
 
                 return 0;
         }
@@ -255,9 +253,7 @@ static int acquire_token_pin(const char *user_name, UserRecord *hr) {
                         return log_error_errno(r, "Failed to store token PIN: %m");
 
                 string_erase(e);
-
-                if (unsetenv("PIN") < 0)
-                        return log_error_errno(errno, "Failed to unset $PIN: %m");
+                assert_se(unsetenv("PIN") == 0);
 
                 return 0;
         }
@@ -997,9 +993,7 @@ static int acquire_new_password(
                         return log_error_errno(r, "Failed to store password: %m");
 
                 string_erase(e);
-
-                if (unsetenv("NEWPASSWORD") < 0)
-                        return log_error_errno(errno, "Failed to unset $NEWPASSWORD: %m");
+                assert_se(unsetenv("NEWPASSWORD") == 0);
 
                 if (ret)
                         *ret = TAKE_PTR(copy);
index 6336a0cce47eb3e71ce103e3959282bfe25eed35..6f0b975627e7632938b2d099cc1d23d75726ccf9 100644 (file)
 #define SNDBUF_SIZE (8*1024*1024)
 
 static void unsetenv_all(bool unset_environment) {
-
         if (!unset_environment)
                 return;
 
-        unsetenv("LISTEN_PID");
-        unsetenv("LISTEN_FDS");
-        unsetenv("LISTEN_FDNAMES");
+        assert_se(unsetenv("LISTEN_PID") == 0);
+        assert_se(unsetenv("LISTEN_FDS") == 0);
+        assert_se(unsetenv("LISTEN_FDNAMES") == 0);
 }
 
 _public_ int sd_listen_fds(int unset_environment) {
@@ -548,7 +547,7 @@ _public_ int sd_pid_notify_with_fds(
 
 finish:
         if (unset_environment)
-                unsetenv("NOTIFY_SOCKET");
+                assert_se(unsetenv("NOTIFY_SOCKET") == 0);
 
         return r;
 }
@@ -672,9 +671,9 @@ _public_ int sd_watchdog_enabled(int unset_environment, uint64_t *usec) {
 
 finish:
         if (unset_environment && s)
-                unsetenv("WATCHDOG_USEC");
+                assert_se(unsetenv("WATCHDOG_USEC") == 0);
         if (unset_environment && p)
-                unsetenv("WATCHDOG_PID");
+                assert_se(unsetenv("WATCHDOG_PID") == 0);
 
         return r;
 }
index e15b7a55fa07cf0dac0d8161b285a3c39e893c72..3b6a4be26028f7cf4bfcd05bad511f0aa104423c 100644 (file)
@@ -898,11 +898,11 @@ int main(int argc, char *argv[]) {
         }
 #endif
 
-        (void) unsetenv("USER");
-        (void) unsetenv("LOGNAME");
-        (void) unsetenv("SHELL");
-        (void) unsetenv("HOME");
-        (void) unsetenv("TMPDIR");
+        assert_se(unsetenv("USER") == 0);
+        assert_se(unsetenv("LOGNAME") == 0);
+        assert_se(unsetenv("SHELL") == 0);
+        assert_se(unsetenv("HOME") == 0);
+        assert_se(unsetenv("TMPDIR") == 0);
 
         can_unshare = have_namespaces();
 
index 36108f548b70d72f0c80eb31c71db5bbf17144c7..f4f8d0550b779f11f11c462581ba9b684981d885 100644 (file)
@@ -184,7 +184,7 @@ static void test_find_executable_full(void) {
         if (p)
                 assert_se(oldpath = strdup(p));
 
-        assert_se(unsetenv("PATH") >= 0);
+        assert_se(unsetenv("PATH") == 0);
 
         assert_se(find_executable_full("sh", true, &p) == 0);
         puts(p);
@@ -347,7 +347,7 @@ static void test_fsck_exists(void) {
         log_info("/* %s */", __func__);
 
         /* Ensure we use a sane default for PATH. */
-        unsetenv("PATH");
+        assert_se(unsetenv("PATH") == 0);
 
         /* fsck.minix is provided by util-linux and will probably exist. */
         assert_se(fsck_exists("minix") == 1);
index cfe8753441c6a42f59eb6716a48bb291367fe187..cc391e81a051ff91e7134e48ffb1c64c7c769266 100644 (file)
@@ -480,7 +480,7 @@ static void test_in_utc_timezone(void) {
         assert_se(streq(tzname[0], "CET"));
         assert_se(streq(tzname[1], "CEST"));
 
-        assert_se(unsetenv("TZ") >= 0);
+        assert_se(unsetenv("TZ") == 0);
 }
 
 static void test_map_clock_usec(void) {
index b6544988c64f60f367ba4a0e5c03ae726f247df3..d24b8d43985babfdf9683723cea846e8be509518 100644 (file)
@@ -565,7 +565,7 @@ static int worker_main(Manager *_manager, sd_device_monitor *monitor, sd_device
         assert(monitor);
         assert(dev);
 
-        unsetenv("NOTIFY_SOCKET");
+        assert_se(unsetenv("NOTIFY_SOCKET") == 0);
 
         assert_se(sigprocmask_many(SIG_BLOCK, NULL, SIGTERM, -1) >= 0);
 
index 0d0b2870abc0832f088a86f427e7840a1d716f93..a0e22dff559ee5b0916de88ce5c5ebc3f1747b93 100644 (file)
@@ -780,10 +780,8 @@ static int run(int argc, char *argv[]) {
                         return log_error_errno(r, "Failed to set $SYSTEMD_ONLY_USERDB: %m");
 
                 log_info("Enabled services: %s", e);
-        } else {
-                if (unsetenv("SYSTEMD_ONLY_USERDB") < 0)
-                        return log_error_errno(r, "Failed to unset $SYSTEMD_ONLY_USERDB: %m");
-        }
+        } else
+                assert_se(unsetenv("SYSTEMD_ONLY_USERDB") == 0);
 
         return dispatch_verb(argc, argv, verbs, NULL);
 }