diff --git a/applications/rpc/rpc_storage.c b/applications/rpc/rpc_storage.c index 468e1e08..ad6191b2 100644 --- a/applications/rpc/rpc_storage.c +++ b/applications/rpc/rpc_storage.c @@ -320,16 +320,21 @@ static void rpc_system_storage_read_process(const PB_Main* request, void* contex response->has_next = fs_operation_success && (size_left > 0); } else { - response->content.storage_read_response.has_file = false; + response->content.storage_read_response.file.data = + malloc(PB_BYTES_ARRAY_T_ALLOCSIZE(0)); + response->content.storage_read_response.file.data->size = 0; + response->content.storage_read_response.has_file = true; response->has_next = false; fs_operation_success = true; } + + if(fs_operation_success) { + rpc_send_and_release(session, response); + } } while((size_left != 0) && fs_operation_success); } - if(fs_operation_success) { - rpc_send_and_release(session, response); - } else { + if(!fs_operation_success) { rpc_send_and_release_empty( session, request->command_id, rpc_system_storage_get_file_error(file)); }