Tuesday, April 11, 2023

Re: All my Rust programs stop working on OpenBSD 7.3

Oh shoot! Sorry I misunderstood the solution. I got rust-ring package installed and tried Laurie's recipe. Now all errors are gone. Thanks a lot!




> On Apr 11, 2023, at 17:06, Theo Buehler <tb@theobuehler.org> wrote:
>
> On Tue, Apr 11, 2023 at 04:43:04PM +0800, Siegfried Levin wrote:
>> I checked the core dump again. There is still an error on Ring 0.16.20.
>
> Yes, that's expected. If you read my mail again, I told you to use the
> patched source in /usr/local/share/ring-0.16.20 from the rust-ring
> package, not simply ring 0.16.20. Once again: if Cargo.toml contains
>
> [dependencies]
> ...
> ring = "^0.16"
> ...
>
> or similar, remove the ring line from [dependencies] and add a new section
>
> [dependencies.ring]
> version = "^0.16"
> path = "/usr/local/share/ring-0.16.20"
>
> Or you can follow Laurie Tratt's recpie.
>
>> Where can I know more about the protection introduced in 7.3 in case that I need to report this on GitHub? Thanks.
>
> I don't think it's going to be useful to report this on github. I will
> try to upstream the patches when I will find time to do so. It's a bit
> of a tricky patchset since ring uses assembly from BoringSSL and targets
> various platforms I don't have easy access to, so I can't upstream the
> patches as they currently are in the port.
>
>> Reading symbols from /usr/libexec/ld.so...Error while reading shared library symbols:
>> Dwarf Error: wrong version in compilation unit header (is 4, should be 2) [in module /usr/libexec/ld.so]
>> #0 GFp_sha512_block_data_order_avx () at /mnt/warehouse/home/git/.cargo/registry/src/github.com-1ecc6299db9ec823/ring-0.16.20/pregenerated/sha512-x86_64-elf.S:1881
>> 1881 vpaddq -128(%rbp),%xmm0,%xmm8
>
> Yes, as expected.
>
>>
>>> On Apr 11, 2023, at 02:54, Theo Buehler <tb@theobuehler.org> wrote:
>>>
>>> 
>>>>
>>>> Thanks. Actually that's what I did. Rust package was updated by
>>>> "pkg_add -u rust" and then "cargo build —release" rebuilds the
>>>> projects. However, when I ran it, it crashed because of segment fault.
>>>> It no longer passes the tests as well, "invalid memory reference" was
>>>> returned.
>>>
>>> Without seeing a backtrace it is difficult to tell.
>>>
>>> Another issue could be that you use things depending on the ring crate
>>> whose assembly isn't compatible with the new x-only protection on modern
>>> amd64 machines.
>>>
>>> If so, you will need to
>>>
>>> # pkg_add rust-ring
>>>
>>> and replace lines like this
>>>
>>> ring = "^0.16"
>>>
>>> with something like this in Cargo.toml:
>>>
>>> [dependencies.ring]
>>> version = "^0.16"
>>> path = "/usr/local/share/ring-0.16.20"

No comments:

Post a Comment