diff options
-rw-r--r-- | win32/mingw.c | 16 |
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) | |||
1767 | int mingw_chdir(const char *dirname) | 1767 | int 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 | } |