#794 closed defect (fixed)
Cannot ping QEMU gateway (10.0.2.2)
Reported by: | Jakub Jermář | Owned by: | |
---|---|---|---|
Priority: | major | Milestone: | |
Component: | helenos/unspecified | Version: | mainline |
Keywords: | Cc: | ||
Blocker for: | Depends on: | ||
See also: |
Description
Dynamic linking support for amd64 somehow regressed the ability to ping 10.0.2.2 in the default QEMU networking setup:
15674715412ae9b74ef57bcf964741ea2f00c1bb is the first bad commit commit 15674715412ae9b74ef57bcf964741ea2f00c1bb Author: Jiri Svoboda <jiri@wiwaxia> Date: Mon Jan 8 20:37:57 2018 +0100 Enable dynamic linking on amd64 :100644 100644 7f202ce2d6c5153b848b2fe87479115966600c6e 2da39668649bff020abc59b0784e3e6b8122fc3b M HelenOS.config :040000 040000 97352ce91febacd715419f77394206623e824c66 602e6f5b7e681323d8639baef848935edac5787f M defaults :040000 040000 621f32f17ddbeec3c1a49dc9ec00a2e2f346d7ee 304a77cff52ba697348da1a4b2f459e9a63affad M uspace
Change History (3)
comment:1 by , 6 years ago
comment:2 by , 6 years ago
Resolution: | → fixed |
---|---|
Status: | new → closed |
comment:3 by , 6 years ago
Not sure how we could have ever gotten correct payload from the ping reply. Note that you can also ping the loopback addresses: 127.0.0.1 (v4) and ::1 (v6).
Note:
See TracTickets
for help on using tickets.
I could only reproduce this problem on amd64 with shared libraries enabled. I could not reproduce it on ia32 or ppc32 with dynamic linking or on amd64 with static libraries.
The ping client would never receive a response from inetsrv, because inetping_recv() of inetsrv would receive EPERM from async_data_write_start() trying to send the payload of the ping reply. The pointer was invalid, going just a little bit beyond the end of the valid memory area.
The pointer computation in
icmp_recv_echo_reply()
andicmpv6_recv_echo_reply()
was incorrect (adding byte offset to a non-byte pointer).