diff options
author | ogasawara@osdl.org <ogasawara@osdl.org> | 2004-05-14 23:18:46 -0700 |
---|---|---|
committer | Greg KH <gregkh@suse.de> | 2005-04-26 21:35:47 -0700 |
commit | c33359307b4a337d6c4f2f4fbe4451544fa5cc1f (patch) | |
tree | 672e581b2a1d490f6f5fd55e329a8fc4e9a73885 /udev_config.c | |
parent | 28e169f067aa96b406342677922e34e7361a7d1b (diff) |
[PATCH] evaluate getenv() return value for udev_config.c
Small patch to fix the evaluation logic for the return value of getenv()
in udev_config.c file. Basically, the actual values for the environment
variables "UDEV_NO_SLEEP" and "UDEV_NO_DEVD" were not being checked.
For example UDEV_NO_SLEEP could have been set to false but the line:
if (getenv("UDEV_NO_SLEEP") != NULL)
in this case would always evaluate to true, since getenv() returns
char*, thus the "udev_sleep" variable would be set incorrectly. The
patch makes sure to check the value returned by getenv() not just if
getenv() returned a value. Hope this made sense. Thanks,
Diffstat (limited to 'udev_config.c')
-rw-r--r-- | udev_config.c | 10 |
1 files changed, 8 insertions, 2 deletions
diff --git a/udev_config.c b/udev_config.c index 51a91d0092..19f690c7e8 100644 --- a/udev_config.c +++ b/udev_config.c @@ -60,11 +60,15 @@ static int string_is_true(char *str) return 1; if (strcasecmp(str, "yes") == 0) return 1; + if (strcasecmp(str, "1") == 0) + return 1; return 0; } static void init_variables(void) { + char *env; + /* fill up the defaults. * If any config values are specified, they will * override these values. */ @@ -76,11 +80,13 @@ static void init_variables(void) udev_log = string_is_true(UDEV_LOG_DEFAULT); udev_sleep = 1; - if (getenv("UDEV_NO_SLEEP") != NULL) + env = getenv("UDEV_NO_SLEEP"); + if (env && string_is_true(env)) udev_sleep = 0; udev_dev_d = 1; - if (getenv("UDEV_NO_DEVD") != NULL) + env = getenv("UDEV_NO_DEVD"); + if (env && string_is_true(env)) udev_dev_d = 0; } |