On Wed, Dec 4, 2024 at 12:11 AM Diego Nieto Cid <dnie...@gmail.com> wrote:
>     52<--47(pid1044)->io_write_request ("Hello World!\n" -1) = 0 15

On Wed, Dec 4, 2024 at 4:50 AM Diego Nieto Cid <dnie...@gmail.com> wrote:
> I traced it to the function `io_write` from `libhurduser.so.3` which
> is returning 1.

On Wed, Dec 4, 2024 at 6:09 AM Diego Nieto Cid <dnie...@gmail.com> wrote:
> (gdb) p *nbytes
> $23 = 13
> (gdb) p wrote
> $24 = 15
> (gdb) p err
> $25 = ESUCCESS
> (gdb)
> --->8-------->8----
>
> It's odd that the written bytes are greater than the requested to
> write bytes. Although I still don't know if that's the culprit.

That's it, great catch! And after that, _IO_new_file_write must be
trying to write out the remaining -2 bytes, and that fails. 1 is
likely KERN_INVALID_ADDRESS; the RPC doesn't go out which is why we
don't see it in rpctrace.

zero_write leaves *amount unset; its UB.

Sergey

Reply via email to