File tree Expand file tree Collapse file tree 1 file changed +9
-4
lines changed Expand file tree Collapse file tree 1 file changed +9
-4
lines changed Original file line number Diff line number Diff line change 11
11
$ magentoObjectManager = $ magentoObjectManagerFactory ->create ($ _SERVER );
12
12
$ tokenModel = $ magentoObjectManager ->get (\Magento \Integration \Model \Oauth \Token::class);
13
13
14
- $ tokenPassedIn = urldecode ($ _POST ['token ' ]);
15
- $ command = urldecode ($ _POST ['command ' ]);
16
- $ arguments = urldecode ($ _POST ['arguments ' ]);
14
+ $ tokenPassedIn = urldecode ($ _POST ['token ' ] ?? "" );
15
+ $ command = urldecode ($ _POST ['command ' ] ?? "" );
16
+ $ arguments = urldecode ($ _POST ['arguments ' ] ?? "" );
17
17
18
18
// Token returned will be null if the token we passed in is invalid
19
19
$ tokenFromMagento = $ tokenModel ->loadByToken ($ tokenPassedIn )->getToken ();
22
22
$ magentoBinary = $ php . ' -f ../../../../bin/magento ' ;
23
23
$ valid = validateCommand ($ magentoBinary , $ command );
24
24
if ($ valid ) {
25
- $ process = new Symfony \Component \Process \Process ($ magentoBinary . " $ command " . " $ arguments " );
25
+ // Turn string into array for symfony escaping
26
+ $ commandParts = array_filter (explode (" " , $ command ));
27
+ $ argumentParts = array_filter (explode (" " , $ arguments ));
28
+ $ magentoBinaryParts = array_filter (explode (" " , $ magentoBinary ));
29
+ $ commandArray = array_merge ($ magentoBinaryParts , $ commandParts );
30
+ $ process = new Symfony \Component \Process \Process ($ commandArray );
26
31
$ process ->setIdleTimeout (60 );
27
32
$ process ->setTimeout (0 );
28
33
$ idleTimeout = false ;
You can’t perform that action at this time.
0 commit comments