| 1 | 141a142 |
|---|
| 2 | > $this->strings['working_dir_filepath_too_long'] = __('Working directory path length is too long.'); |
|---|
| 3 | 282,284c283,305 |
|---|
| 4 | < |
|---|
| 5 | < // We need a working directory - Strip off any .tmp or .zip suffixes |
|---|
| 6 | < $working_dir = $upgrade_folder . basename( basename( $package, '.tmp' ), '.zip' ); |
|---|
| 7 | --- |
|---|
| 8 | > |
|---|
| 9 | > //Strip off any .tmp or .zip suffixes from temporary package filename |
|---|
| 10 | > $tmp_filename_no_suffix = basename( basename( $package, '.tmp' ), '.zip' ); |
|---|
| 11 | > |
|---|
| 12 | > // We need a working directory |
|---|
| 13 | > $working_dir = $upgrade_folder . $tmp_filename_no_suffix; |
|---|
| 14 | > |
|---|
| 15 | > /* Filepaths should be 255 characters or fewer to prevent errors on Windows installations. |
|---|
| 16 | > If working directory path is longer than 255 characters then try to remove some |
|---|
| 17 | > characters from the temporary directory name to bring it within 255 characters. */ |
|---|
| 18 | > $how_much_too_long = strlen($working_dir)-255; |
|---|
| 19 | > |
|---|
| 20 | > if ($how_much_too_long > 0) { |
|---|
| 21 | > $tmp_filename_no_suffix_length = strlen($tmp_filename_no_suffix); |
|---|
| 22 | > /* If the length by which the working directory filepath is too long is greater |
|---|
| 23 | > than or equal to the length of the temporary directory's name then throw an error |
|---|
| 24 | > as we will not be able to create a short enough working directory path. */ |
|---|
| 25 | > if ($how_much_too_long >= $tmp_filename_no_suffix_length) { |
|---|
| 26 | > return new WP_Error( 'working_dir_filepath_too_long', $this->strings['working_dir_filepath_too_long'] ); |
|---|
| 27 | > } |
|---|
| 28 | > $shortened_directory_name = substr($tmp_filename_no_suffix, 0, $tmp_filename_no_suffix_length-$how_much_too_long); |
|---|
| 29 | > $working_dir = $upgrade_folder . $shortened_directory_name; |
|---|
| 30 | > } |
|---|