File tree Expand file tree Collapse file tree
Expand file tree Collapse file tree Original file line number Diff line number Diff line change @@ -130,13 +130,38 @@ func WithRequestEnv(env map[string]string) RequestOption {
130130}
131131
132132func WithRequestPreparedEnv (env PreparedEnv ) RequestOption {
133+ env = ensurePreparedEnv (env )
134+
133135 return func (o * frankenPHPContext ) error {
134136 o .env = env
135137
136138 return nil
137139 }
138140}
139141
142+ // ensurePreparedEnv ensures every key is NUL-terminated
143+ // Empty keys are dropped
144+ func ensurePreparedEnv (env PreparedEnv ) PreparedEnv {
145+ for k := range env {
146+ if k == "" || k [len (k )- 1 ] != '\x00' {
147+ fixed := make (PreparedEnv , len (env ))
148+ for k , v := range env {
149+ if k == "" {
150+ continue
151+ }
152+ if k [len (k )- 1 ] != '\x00' {
153+ k += "\x00 "
154+ }
155+ fixed [k ] = v
156+ }
157+
158+ return fixed
159+ }
160+ }
161+
162+ return env
163+ }
164+
140165func WithOriginalRequest (r * http.Request ) RequestOption {
141166 return func (o * frankenPHPContext ) error {
142167 o .originalRequest = r
You can’t perform that action at this time.
0 commit comments