Don't leak value returned by cgetstr(). OK deraadt@
authormillert <millert@openbsd.org>
Tue, 2 Jun 2015 23:05:05 +0000 (23:05 +0000)
committermillert <millert@openbsd.org>
Tue, 2 Jun 2015 23:05:05 +0000 (23:05 +0000)
usr.sbin/sensorsd/sensorsd.c

index 5e1a61b..e63cf96 100644 (file)
@@ -1,4 +1,4 @@
-/*     $OpenBSD: sensorsd.c,v 1.54 2015/01/16 06:40:20 deraadt Exp $ */
+/*     $OpenBSD: sensorsd.c,v 1.55 2015/06/02 23:05:05 millert Exp $ */
 
 /*
  * Copyright (c) 2003 Henning Brauer <henning@openbsd.org>
@@ -721,13 +721,17 @@ parse_config_sdlim(struct sdlim_t *sdlim, char *cf)
                if (cgetstr(buf, "low", &ebuf) < 0)
                        ebuf = NULL;
                p->lower = get_val(ebuf, 0, p->type);
+               free(ebuf);
                if (cgetstr(buf, "high", &ebuf) < 0)
                        ebuf = NULL;
                p->upper = get_val(ebuf, 1, p->type);
+               free(ebuf);
                if (cgetstr(buf, "command", &ebuf) < 0)
                        ebuf = NULL;
-               if (ebuf)
-                       asprintf(&(p->command), "%s", ebuf);
+               if (ebuf != NULL) {
+                       p->command = ebuf;
+                       ebuf = NULL;
+               }
                free(buf);
                buf = NULL;
                if (p->lower != LLONG_MIN || p->upper != LLONG_MAX)