aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--win32/mingw.c16
1 files changed, 9 insertions, 7 deletions
diff --git a/win32/mingw.c b/win32/mingw.c
index d323014b7..87e7ca602 100644
--- a/win32/mingw.c
+++ b/win32/mingw.c
@@ -1767,16 +1767,18 @@ int mingw_mkdir(const char *path, int mode UNUSED_PARAM)
1767int mingw_chdir(const char *dirname) 1767int mingw_chdir(const char *dirname)
1768{ 1768{
1769 int ret = -1; 1769 int ret = -1;
1770 const char *realdir = dirname; 1770 char *realdir;
1771 1771
1772 if (is_symlink(dirname)) { 1772 if (is_symlink(dirname))
1773 realdir = auto_string(xmalloc_realpath(dirname)); 1773 realdir = xmalloc_realpath(dirname);
1774 if (realdir) 1774 else
1775 fix_path_case((char *)realdir); 1775 realdir = xstrdup(dirname);
1776 }
1777 1776
1778 if (realdir) 1777 if (realdir) {
1778 fix_path_case(realdir);
1779 ret = chdir(realdir); 1779 ret = chdir(realdir);
1780 }
1781 free(realdir);
1780 1782
1781 return ret; 1783 return ret;
1782} 1784}