diff options
author | jim-p <jimp@pfsense.org> | 2013-07-11 13:36:40 -0400 |
---|---|---|
committer | jim-p <jimp@pfsense.org> | 2013-07-11 13:36:40 -0400 |
commit | 2916a9051a4e60c64ecd2732b652a12696d3295e (patch) | |
tree | b5c42928cd4c2280cef61d0f33067da8a3ed4e36 /config/openvpn-client-export/openvpn-client-export.inc | |
parent | 4f04e374e024c87496a6d8556975ff191fef461a (diff) | |
download | pfsense-packages-2916a9051a4e60c64ecd2732b652a12696d3295e.tar.gz pfsense-packages-2916a9051a4e60c64ecd2732b652a12696d3295e.tar.bz2 pfsense-packages-2916a9051a4e60c64ecd2732b652a12696d3295e.zip |
Properly handle filenames containing spaces when exporting an archive. Fixes #2856
Diffstat (limited to 'config/openvpn-client-export/openvpn-client-export.inc')
-rwxr-xr-x | config/openvpn-client-export/openvpn-client-export.inc | 12 |
1 files changed, 8 insertions, 4 deletions
diff --git a/config/openvpn-client-export/openvpn-client-export.inc b/config/openvpn-client-export/openvpn-client-export.inc index d88d988f..b2c240ec 100755 --- a/config/openvpn-client-export/openvpn-client-export.inc +++ b/config/openvpn-client-export/openvpn-client-export.inc @@ -343,7 +343,7 @@ function openvpn_client_export_config($srvid, $usrid, $crtid, $useaddr, $quotese case "zip": // create template directory $tempdir = "{$g['tmp_path']}/{$prefix}"; - mkdir($tempdir, 0700, true); + @mkdir($tempdir, 0700, true); file_put_contents("{$tempdir}/{$prefix}.ovpn", $conf); @@ -368,10 +368,14 @@ function openvpn_client_export_config($srvid, $usrid, $crtid, $useaddr, $quotese else openvpn_client_pem_to_pk12($p12file, $outpass, $crtfile, $keyfile, $cafile); } - exec("cd {$tempdir}/.. && /usr/local/bin/zip -r {$g['tmp_path']}/{$prefix}-config.zip {$prefix}"); + $command = "cd " . escapeshellarg("{$tempdir}/..") + . " && /usr/local/bin/zip -r " + . escapeshellarg("{$g['tmp_path']}/{$prefix}-config.zip") + . " " . escapeshellarg($prefix); + exec($command); // Remove temporary directory - exec("rm -rf {$tempdir}"); - return $g['tmp_path'] . "/{$prefix}-config.zip"; + exec("rm -rf " . escapeshellarg($tempdir)); + return "{$g['tmp_path']}/{$prefix}-config.zip"; break; case "inline": case "inlinedroid": |