chiark / gitweb /
[PATCH] evaluate getenv() return value for udev_config.c
authorogasawara@osdl.org <ogasawara@osdl.org>
Sat, 15 May 2004 06:18:46 +0000 (23:18 -0700)
committerGreg KH <gregkh@suse.de>
Wed, 27 Apr 2005 04:35:47 +0000 (21:35 -0700)
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,

udev_config.c

index 51a91d009260db4b12a4710493818059863b9e56..19f690c7e8cd0d77d703b7adfcec3fcebb534db6 100644 (file)
@@ -60,11 +60,15 @@ static int string_is_true(char *str)
                return 1;
        if (strcasecmp(str, "yes") == 0)
                return 1;
                return 1;
        if (strcasecmp(str, "yes") == 0)
                return 1;
+       if (strcasecmp(str, "1") == 0)
+               return 1;
        return 0;
 }
 
 static void init_variables(void)
 {
        return 0;
 }
 
 static void init_variables(void)
 {
+       char *env;
+
        /* fill up the defaults.  
         * If any config values are specified, they will
         * override these values. */
        /* 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;
        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;
                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;
 }
 
                udev_dev_d = 0;
 }