diff --git a/example/scp_write.c b/example/scp_write.c
index f6af186..6990bdb 100644
--- a/example/scp_write.c
+++ b/example/scp_write.c
@@ -197,6 +197,9 @@ int main(int argc, char *argv[])
 #else
     close(sock);
 #endif
+
+	fclose(local);
+	
     fprintf(stderr, "all done\n");
     return 0;
 }
diff --git a/example/sftp_RW_nonblock.c b/example/sftp_RW_nonblock.c
index 70aad82..51435c6 100644
--- a/example/sftp_RW_nonblock.c
+++ b/example/sftp_RW_nonblock.c
@@ -283,6 +283,9 @@ int main(int argc, char *argv[])
 #else
     close(sock);
 #endif
+
+	fclose(tempstorage);
+
     printf("all done\n");
     return 0;
 }
diff --git a/example/sftp_write.c b/example/sftp_write.c
index 4d583ab..fd783a6 100644
--- a/example/sftp_write.c
+++ b/example/sftp_write.c
@@ -199,6 +199,7 @@ int main(int argc, char *argv[])
 #else
     close(sock);
 #endif
+    fclose(local);
 printf("all done\n");
     return 0;
 }
diff --git a/example/x11.c b/example/x11.c
index 5265b82..0f0ff07 100644
--- a/example/x11.c
+++ b/example/x11.c
@@ -126,7 +126,10 @@ static void x11_callback(LIBSSH2_SESSION *session, LIBSSH2_CHANNEL *channel,
 
             sock = socket(AF_UNIX,SOCK_STREAM, 0);
             if (sock <0)
+			{
+				free(temp_buff);
                 return;
+			}
             memset(&addr, 0, sizeof(addr));
             addr.sun_family = AF_UNIX;
             snprintf(addr.sun_path, sizeof(addr.sun_path),

 	  	 

