When kenv with KENV_GET and KENV_DUMP* return an error, don't write
anything back to len.

Signed-off-by: Warner Losh <[email protected]>
---
 bsd-user/freebsd/os-misc.h | 8 ++++++--
 1 file changed, 6 insertions(+), 2 deletions(-)

diff --git a/bsd-user/freebsd/os-misc.h b/bsd-user/freebsd/os-misc.h
index 204d8ebd3d..92c0a5b4ca 100644
--- a/bsd-user/freebsd/os-misc.h
+++ b/bsd-user/freebsd/os-misc.h
@@ -480,7 +480,9 @@ static inline abi_long do_freebsd_kenv(abi_long action, 
abi_ulong name,
         }
         ret = kenv(action, gname, gvalue, len);
         if (ret > 0) {
-                len = ret;
+            len = ret;
+        } else {
+            len = 0;
         }
         break;
     case KENV_SET:
@@ -522,7 +524,9 @@ static inline abi_long do_freebsd_kenv(abi_long action, 
abi_ulong name,
         /* name is ignored, per kenv(2) */
         ret = kenv(action, NULL, gvalue, len);
         if (ret > 0) {
-                len = ret;
+            len = ret;
+        } else {
+            len = 0;
         }
         break;
     default:

-- 
2.52.0


Reply via email to