Fix memory leak in os.readlink
diff --git a/Modules/posixmodule.c b/Modules/posixmodule.c
index 8a78d8c..24c9e15 100644
--- a/Modules/posixmodule.c
+++ b/Modules/posixmodule.c
@@ -5783,7 +5783,10 @@
 		return NULL;
 #ifdef Py_USING_UNICODE
 	v = PySequence_GetItem(args, 0);
-	if (v == NULL) return NULL;
+	if (v == NULL) {
+		PyMem_Free(path);
+		return NULL;
+	}
 
 	if (PyUnicode_Check(v)) {
 		arg_is_unicode = 1;
@@ -5795,8 +5798,9 @@
 	n = readlink(path, buf, (int) sizeof buf);
 	Py_END_ALLOW_THREADS
 	if (n < 0)
-		return posix_error_with_filename(path);
+		return posix_error_with_allocated_filename(path);
 
+	PyMem_Free(path);
 	v = PyString_FromStringAndSize(buf, n);
 #ifdef Py_USING_UNICODE
 	if (arg_is_unicode) {