From 1e0ccf427907fa3359cd40a4c8006cca2e64f0ef Mon Sep 17 00:00:00 2001 From: Lukas Kalbertodt Date: Mon, 26 Jul 2021 22:45:55 +0200 Subject: [PATCH] Add check for `=` or null bytes in env variable key --- macro/src/ir.rs | 10 +++++++++- 1 file changed, 9 insertions(+), 1 deletion(-) diff --git a/macro/src/ir.rs b/macro/src/ir.rs index b644573..9081eee 100644 --- a/macro/src/ir.rs +++ b/macro/src/ir.rs @@ -302,7 +302,15 @@ impl Parse for InternalAttr { let _: Token![=] = input.parse()?; let key: syn::LitStr = input.parse()?; assert_empty(input)?; - Ok(Self::Env(key.value())) + let value = key.value(); + if value.contains('=') || value.contains('\0') { + Err(syn::Error::new( + key.span(), + "environment variable key must not contain '=' or null bytes", + )) + } else { + Ok(Self::Env(value)) + } } _ => Err(syn::Error::new(ident.span(), "unknown confique attribute")),