[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,
This commit is contained in:
ogasawara@osdl.org 2004-05-14 23:18:46 -07:00 committed by Greg KH
parent 28e169f067
commit c33359307b

View file

@ -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;
}