From 594b80f4db7f067be86a45e275817f8d75c97afb Mon Sep 17 00:00:00 2001
From: Basile Desloges <basile.desloges@cea.fr>
Date: Wed, 18 Sep 2024 15:49:51 +0200
Subject: [PATCH] [libc] Add secure_getenv

---
 share/libc/stdlib.h | 12 +++++++++++-
 1 file changed, 11 insertions(+), 1 deletion(-)

diff --git a/share/libc/stdlib.h b/share/libc/stdlib.h
index 1c516ccb5a..dc131429c4 100644
--- a/share/libc/stdlib.h
+++ b/share/libc/stdlib.h
@@ -416,7 +416,7 @@ extern long int jrand48 (unsigned short xsubi[3]);
   complete behaviors;
   disjoint behaviors; */
 extern void *calloc(size_t nmemb, size_t size);
- 
+
 /*@ allocates \result;
   @ assigns __fc_heap_status \from size, __fc_heap_status;
   @ assigns \result \from indirect:size, indirect:__fc_heap_status;
@@ -562,6 +562,16 @@ extern char *__fc_env[ARG_MAX];
  */
 extern char *getenv(const char *name);
 
+// Non-POSIX, GNU extension
+/*@
+  requires valid_name: valid_read_string(name);
+  assigns \result \from __fc_env[0..], indirect:name,
+                        indirect:name[0 .. strlen(name)];
+  ensures null_or_valid_result:
+    \result == \null || (\valid(\result) && valid_read_string(\result));
+ */
+extern char *secure_getenv(const char *name);
+
 /*@
   requires valid_string: valid_read_string(string);
   assigns __fc_env[0..] \from __fc_env[0..], string;
-- 
GitLab