diff --git a/net/9p/protocol.c b/net/9p/protocol.c
index b58a501cf3d124a06939d266002bf48a92863ee1..a873277cb996810162ee875db9485952144541bb 100644
--- a/net/9p/protocol.c
+++ b/net/9p/protocol.c
@@ -674,6 +674,7 @@ int p9dirent_read(char *buf, int len, struct p9_dirent *dirent,
 	}
 
 	strcpy(dirent->d_name, nameptr);
+	kfree(nameptr);
 
 out:
 	return fake_pdu.offset;