-
Notifications
You must be signed in to change notification settings - Fork 145
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Conditional jump or move depends on uninitialised value(s) #450
Comments
This is new. Previously, Picoquic tests were run using the Picotls version of Thu Sep 15 13:29:56 2022 +0900, after commit |
I tried synching at multiple commits, and it seems that the picoquic tests keep failing. One of the issues was found in
In theory, the combination of |
I was able to work around the problem in picoquic by forcing use of "fusion" for AES GCM as explained in this picoquic issue. Turns out that the issue is already reported in OpenSSL. |
I ran the openssl tests through "valgrind". The issue mentioned above reproes, as well as a few others:
|
I think we should consider adding a valgrind CI test. Maybe not the full run of
|
Re aligned_alloc in comment #450 (comment): please check #454. |
Generally speaking, I'm not sure how much we can trust Valgrind here. In optimized crypto code, we often load out-of-bounds intentionally. I would assume AES-GCM code of libcryto doing something similar. |
I have found some real issues using valgrind, issues that were not flagged by ASAN/UBSAN. I like having it as one of the CI checks in picoquic. The code in fusion does not trip valgrind. This allowed me to work around the openssl issues. I just run valgrind in a configuration that uses fusion instead of OpenSSL's version of AES GCM. I am not sure if there are macros similar to NO_SANITIZE_ADDRESS for valgrind. If there was, that would be nice. |
I share your irritation. This (possibly bogus) warning could be specific to a particular combination of valgrind and openssl. I did not see such a warning when I tried to repro on Ubuntu 22.04 (valgrind 3.18.1 / openssl 3.0.2). |
Got this warning when running valgrind to check picoquic code. The issue happens inside openssl, accessed through picotls
This is part of the valgrind report:
==4255== 1526 errors in context 1 of 1:
==4255== Conditional jump or move depends on uninitialised value(s)
==4255== at 0x4AF62A4: ??? (in /usr/lib/x86_64-linux-gnu/libcrypto.so.3)
==4255== by 0x4AF6581: ??? (in /usr/lib/x86_64-linux-gnu/libcrypto.so.3)
==4255== by 0x49F70F4: EVP_DecryptFinal_ex (in /usr/lib/x86_64-linux-gnu/libcrypto.so.3)
==4255== by 0x1C6724: aead_do_decrypt (openssl.c:962)
==4255== by 0x182F26: picoquic_remove_packet_protection (packet.c:677)
==4255== by 0x18381D: picoquic_parse_header_and_decrypt (packet.c:783)
==4255== by 0x186149: picoquic_incoming_segment (packet.c:2157)
Have we seen that already?
The text was updated successfully, but these errors were encountered: