summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--sys/kern/kern_environment.c7
1 files changed, 5 insertions, 2 deletions
diff --git a/sys/kern/kern_environment.c b/sys/kern/kern_environment.c
index 550be83f6a9d..8c488644dc78 100644
--- a/sys/kern/kern_environment.c
+++ b/sys/kern/kern_environment.c
@@ -458,9 +458,10 @@ getenv_quad(const char *name, quad_t *data)
if (value == NULL)
return (0);
iv = strtoq(value, &vtp, 0);
- freeenv(value);
- if (vtp == value || (vtp[0] != '\0' && vtp[1] != '\0'))
+ if (vtp == value || (vtp[0] != '\0' && vtp[1] != '\0')) {
+ freeenv(value);
return (0);
+ }
switch (vtp[0]) {
case 't': case 'T':
iv *= 1024;
@@ -473,9 +474,11 @@ getenv_quad(const char *name, quad_t *data)
case '\0':
break;
default:
+ freeenv(value);
return (0);
}
*data = iv;
+ freeenv(value);
return (1);
}