fix error path in file transfer

Signed-off-by: Andy Green <andy.green@linaro.org>
diff --git a/lib/output.c b/lib/output.c
index 8962f75..8e13d4b 100644
--- a/lib/output.c
+++ b/lib/output.c
@@ -492,10 +492,8 @@
 			wsi->u.http.filepos += n;
 		}
 
-		if (n < 0) {
-			libwebsocket_close_and_free_session(context, wsi, LWS_CLOSE_STATUS_NOSTATUS);
-			return 1;
-		}
+		if (n < 0)
+			return 1; /* caller will close */
 
 		if (n < sizeof(context->service_buffer) || wsi->u.http.filepos == wsi->u.http.filelen) {
 			wsi->state = WSI_STATE_HTTP;
@@ -503,7 +501,8 @@
 			if (wsi->protocol->callback)
 				ret = user_callback_handle_rxflow(wsi->protocol->callback, context, wsi, LWS_CALLBACK_HTTP_FILE_COMPLETION, wsi->user_space,
 					NULL, 0);
-			return ret;
+			/* user_callback_handle_rxflow did any close already */
+			return 0;
 		}
 	}