Handle if popen should fail
authorNikolas Garofil <garo@dunaldi.garofil.be>
Sat, 25 Jul 2009 12:36:55 +0000 (14:36 +0200)
committerNikolas Garofil <garo@dunaldi.garofil.be>
Sat, 25 Jul 2009 12:36:55 +0000 (14:36 +0200)
src/conky.c

index 64f5070..b19ea8e 100644 (file)
@@ -642,12 +642,16 @@ static struct text_object global_root_object;
 static inline void read_exec(const char *data, char *buf, const int size)
 {
        FILE *fp = popen(data, "r");
-       int length = fread(buf, 1, size, fp);
+       if(fp) {
+               int length = fread(buf, 1, size, fp);
 
-       pclose(fp);
-       buf[length] = '\0';
-       if (length > 0 && buf[length - 1] == '\n') {
-               buf[length - 1] = '\0';
+               pclose(fp);
+               buf[length] = '\0';
+               if (length > 0 && buf[length - 1] == '\n') {
+                       buf[length - 1] = '\0';
+               }
+       } else {
+               buf[0] = '\0';
        }
 }