Skip to content

Commit 9118539

Browse files
committed
Raise on error result read_each
1 parent 5598397 commit 9118539

File tree

3 files changed

+11
-29
lines changed

3 files changed

+11
-29
lines changed

ext/um/um.c

+2-5
Original file line numberDiff line numberDiff line change
@@ -630,12 +630,9 @@ VALUE read_recv_each_begin(VALUE arg) {
630630
int more = false;
631631
struct um_op_result *result = &ctx->op->result;
632632
while (result) {
633-
more = (result->flags & IORING_CQE_F_MORE);
634-
if (result->res < 0) {
635-
um_op_multishot_results_clear(ctx->machine, ctx->op);
636-
return Qnil;
637-
}
633+
um_raise_on_error_result(result->res);
638634

635+
more = (result->flags & IORING_CQE_F_MORE);
639636
if (!read_recv_each_multishot_process_result(ctx, result, &total))
640637
return Qnil;
641638

test/test_um.rb

+9
Original file line numberDiff line numberDiff line change
@@ -377,6 +377,15 @@ def test_read_each_break
377377
ensure
378378
t&.kill
379379
end
380+
381+
def test_read_each_bad_file
382+
r, w = IO.pipe
383+
bgid = machine.setup_buffer_ring(4096, 1024)
384+
385+
assert_raises(Errno::EBADF) do
386+
machine.read_each(w.fileno, bgid)
387+
end
388+
end
380389
end
381390

382391
class WriteTest < UMBaseTest

vg.txt

-24
This file was deleted.

0 commit comments

Comments
 (0)