summaryrefslogtreecommitdiffstats
path: root/winsup/cygwin/path.cc
diff options
context:
space:
mode:
Diffstat (limited to 'winsup/cygwin/path.cc')
-rw-r--r--winsup/cygwin/path.cc11
1 files changed, 7 insertions, 4 deletions
diff --git a/winsup/cygwin/path.cc b/winsup/cygwin/path.cc
index 9e57a0f15..f8f65d624 100644
--- a/winsup/cygwin/path.cc
+++ b/winsup/cygwin/path.cc
@@ -2812,11 +2812,14 @@ cygwin_create_path (cygwin_conv_path_t what, const void *from)
void *to;
ssize_t size = cygwin_conv_path (what, from, NULL, 0);
if (size <= 0)
- return NULL;
- if (!(to = malloc (size)))
- return NULL;
+ to = NULL;
+ else if (!(to = malloc (size)))
+ to = NULL;
if (cygwin_conv_path (what, from, to, size) == -1)
- return NULL;
+ {
+ free (to);
+ to = NULL;
+ }
return to;
}