@@ -80,10 +80,20 @@ fn op_set_env(
8080 value : String ,
8181) -> Result < ( ) , AnyError > {
8282 state. borrow_mut :: < Permissions > ( ) . env . check ( & key) ?;
83- let invalid_key = key. is_empty ( ) || key. contains ( & [ '=' , '\0' ] as & [ char ] ) ;
84- let invalid_value = value. contains ( '\0' ) ;
85- if invalid_key || invalid_value {
86- return Err ( type_error ( "Key or value contains invalid characters." ) ) ;
83+ if key. is_empty ( ) {
84+ return Err ( type_error ( "Key is an empty string." ) ) ;
85+ }
86+ if key. contains ( & [ '=' , '\0' ] as & [ char ] ) {
87+ return Err ( type_error ( format ! (
88+ "Key contains invalid characters: {:?}" ,
89+ key
90+ ) ) ) ;
91+ }
92+ if value. contains ( '\0' ) {
93+ return Err ( type_error ( format ! (
94+ "Value contains invalid characters: {:?}" ,
95+ value
96+ ) ) ) ;
8797 }
8898 env:: set_var ( key, value) ;
8999 Ok ( ( ) )
@@ -108,9 +118,17 @@ fn op_get_env(
108118 state. borrow_mut :: < Permissions > ( ) . env . check ( & key) ?;
109119 }
110120
111- if key. is_empty ( ) || key . contains ( & [ '=' , '\0' ] as & [ char ] ) {
112- return Err ( type_error ( "Key contains invalid characters ." ) ) ;
121+ if key. is_empty ( ) {
122+ return Err ( type_error ( "Key is an empty string ." ) ) ;
113123 }
124+
125+ if key. contains ( & [ '=' , '\0' ] as & [ char ] ) {
126+ return Err ( type_error ( format ! (
127+ "Key contains invalid characters: {:?}" ,
128+ key
129+ ) ) ) ;
130+ }
131+
114132 let r = match env:: var ( key) {
115133 Err ( env:: VarError :: NotPresent ) => None ,
116134 v => Some ( v?) ,
0 commit comments