add secure_getenv function

Submitted by Petr Vaněk on May 28, 2019, 8:47 p.m.

Details

Message ID 20190528204748.GA2806@arkam
State New
Series "add secure_getenv function"
Headers show

Commit Message

Petr Vaněk May 28, 2019, 8:47 p.m.
This function is a GNU extension introduced in glibc 2.17.
---
 include/stdlib.h        | 1 +
 src/env/secure_getenv.c | 8 ++++++++
 2 files changed, 9 insertions(+)
 create mode 100644 src/env/secure_getenv.c

Patch hide | download patch | download mbox

diff --git a/include/stdlib.h b/include/stdlib.h
index 42ca8336..194c2033 100644
--- a/include/stdlib.h
+++ b/include/stdlib.h
@@ -152,6 +152,7 @@  int ptsname_r(int, char *, size_t);
 char *ecvt(double, int, int *, int *);
 char *fcvt(double, int, int *, int *);
 char *gcvt(double, int, char *);
+char *secure_getenv(const char *);
 struct __locale_struct;
 float strtof_l(const char *__restrict, char **__restrict, struct __locale_struct *);
 double strtod_l(const char *__restrict, char **__restrict, struct __locale_struct *);
diff --git a/src/env/secure_getenv.c b/src/env/secure_getenv.c
new file mode 100644
index 00000000..72322f81
--- /dev/null
+++ b/src/env/secure_getenv.c
@@ -0,0 +1,8 @@ 
+#define _GNU_SOURCE
+#include <stdlib.h>
+#include "libc.h"
+
+char *secure_getenv(const char *name)
+{
+	return libc.secure ? NULL : getenv(name);
+}

Comments

Rich Felker Aug. 8, 2019, 3:34 p.m.
On Tue, May 28, 2019 at 10:47:48PM +0200, Petr Vaněk wrote:
> This function is a GNU extension introduced in glibc 2.17.
> ---
>  include/stdlib.h        | 1 +
>  src/env/secure_getenv.c | 8 ++++++++
>  2 files changed, 9 insertions(+)
>  create mode 100644 src/env/secure_getenv.c
> 
> diff --git a/include/stdlib.h b/include/stdlib.h
> index 42ca8336..194c2033 100644
> --- a/include/stdlib.h
> +++ b/include/stdlib.h
> @@ -152,6 +152,7 @@ int ptsname_r(int, char *, size_t);
>  char *ecvt(double, int, int *, int *);
>  char *fcvt(double, int, int *, int *);
>  char *gcvt(double, int, char *);
> +char *secure_getenv(const char *);
>  struct __locale_struct;
>  float strtof_l(const char *__restrict, char **__restrict, struct __locale_struct *);
>  double strtod_l(const char *__restrict, char **__restrict, struct __locale_struct *);
> diff --git a/src/env/secure_getenv.c b/src/env/secure_getenv.c
> new file mode 100644
> index 00000000..72322f81
> --- /dev/null
> +++ b/src/env/secure_getenv.c
> @@ -0,0 +1,8 @@
> +#define _GNU_SOURCE
> +#include <stdlib.h>
> +#include "libc.h"
> +
> +char *secure_getenv(const char *name)
> +{
> +	return libc.secure ? NULL : getenv(name);
> +}
> -- 
> 2.21.0

Sorry I overlooked this at the time. Applying it now. Thanks!

Rich
Petr Vaněk Aug. 13, 2019, 4:26 p.m.
On Thu, Aug 08, 2019 at 11:34:09AM -0400, Rich Felker wrote:

> Sorry I overlooked this at the time. Applying it now. Thanks!

That's fine, I am glad you applied it. Thanks.

Petr