Skip to content

Commit 9c6c25a

Browse files
authored
Merge pull request #7286 from tannewt/fix_web_workflow_write
Fix writing files from web workflow
2 parents e468746 + 65e913e commit 9c6c25a

File tree

1 file changed

+10
-2
lines changed

1 file changed

+10
-2
lines changed

supervisor/shared/web_workflow/web_workflow.c

Lines changed: 10 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -907,8 +907,13 @@ static void _write_file_and_reply(socketpool_socket_obj_t *socket, _request *req
907907
error = true;
908908
break;
909909
}
910-
f_write(&active_file, bytes, len, NULL);
911910
total_read += len;
911+
UINT actual;
912+
f_write(&active_file, bytes, len, &actual);
913+
if (actual < (UINT)len) {
914+
error = true;
915+
break;
916+
}
912917
}
913918

914919
f_close(&active_file);
@@ -917,7 +922,10 @@ static void _write_file_and_reply(socketpool_socket_obj_t *socket, _request *req
917922
#endif
918923

919924
override_fattime(0);
920-
if (new_file) {
925+
if (error) {
926+
_discard_incoming(socket, request->content_length - total_read);
927+
_reply_server_error(socket, request);
928+
} else if (new_file) {
921929
_reply_created(socket, request);
922930
} else {
923931
_reply_no_content(socket, request);

0 commit comments

Comments
 (0)