diff -Naur a/toys/other/insmod.c b/toys/other/insmod.c
--- a/toys/other/insmod.c	2014-10-02 18:23:27.000000000 +0530
+++ b/toys/other/insmod.c	2014-10-06 17:11:24.738886330 +0530
@@ -36,7 +36,10 @@
   }
 
   res = init_module(buf, len, toybuf);
-  if (CFG_TOYBOX_FREE && buf != toybuf) free(buf);
+  if (CFG_TOYBOX_FREE) {
+    if (buf != toybuf) free(buf);
+    close(fd);
+  }
 
   if (res) perror_exit("failed to load %s", toys.optargs[0]);
 }
