summaryrefslogtreecommitdiff
path: root/ext/com_dotnet
diff options
context:
space:
mode:
authorChristoph M. Becker <cmbecker69@gmx.de>2020-02-06 15:00:39 +0100
committerChristoph M. Becker <cmbecker69@gmx.de>2020-02-06 15:01:12 +0100
commit0d49cf4ed25e406f00abefca0e2e3e8fd919bf94 (patch)
tree8f76e8de6c94b5e9f59a1f4fca39b7978e174b28 /ext/com_dotnet
parent5d0ef4c239eb5a2c9e0d267c57bf71f7c562c575 (diff)
parent5e2ea00b1539d6003548f7698ece1f737c14fb51 (diff)
downloadphp-git-0d49cf4ed25e406f00abefca0e2e3e8fd919bf94.tar.gz
Merge branch 'PHP-7.3' into PHP-7.4
* PHP-7.3: Fix #66322: COMPersistHelper::SaveToFile can save to wrong location
Diffstat (limited to 'ext/com_dotnet')
-rw-r--r--ext/com_dotnet/com_persist.c2
-rw-r--r--ext/com_dotnet/tests/bug66322.phpt24
2 files changed, 25 insertions, 1 deletions
diff --git a/ext/com_dotnet/com_persist.c b/ext/com_dotnet/com_persist.c
index 9be79995a3..f2d60c1e72 100644
--- a/ext/com_dotnet/com_persist.c
+++ b/ext/com_dotnet/com_persist.c
@@ -398,7 +398,7 @@ CPH_METHOD(SaveToFile)
RETURN_FALSE;
}
- olefilename = php_com_string_to_olestring(filename, strlen(fullpath), helper->codepage);
+ olefilename = php_com_string_to_olestring(fullpath, strlen(fullpath), helper->codepage);
efree(fullpath);
}
res = IPersistFile_Save(helper->ipf, olefilename, remember);
diff --git a/ext/com_dotnet/tests/bug66322.phpt b/ext/com_dotnet/tests/bug66322.phpt
new file mode 100644
index 0000000000..de37e4fa75
--- /dev/null
+++ b/ext/com_dotnet/tests/bug66322.phpt
@@ -0,0 +1,24 @@
+--TEST--
+Bug #66322 (COMPersistHelper::SaveToFile can save to wrong location)
+--SKIPIF--
+<?php
+if (!extension_loaded('com_dotnet')) die('skip com_dotnet extension not available');
+try {
+ new COM('Word.Application');
+} catch (com_exception $ex) {
+ die('skip MS Word not available');
+}
+if (getenv("SKIP_SLOW_TESTS")) die('skip slow test');
+?>
+--FILE--
+<?php
+$w = new COM('Word.Application');
+$doc = $w->Documents->Add();
+$ph = new COMPersistHelper($doc);
+$filename = __DIR__ . '\\..\\' . basename(__DIR__) . '\\66322.docx';
+$ph->SaveToFile($filename);
+var_dump(file_exists($filename));
+$w->Quit();
+?>
+--EXPECT--
+bool(true)