-
Notifications
You must be signed in to change notification settings - Fork 256
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
gpo_child process terminates with SIGSEGV. #6790
Comments
Could you please attach a backtrace as well? |
Here it's:
|
Hi @dpslavov, sorry for the delay.
What platform do you use? ARM, but what arm exactly?
If it's other way around and
Two things bothers me here ^^:
How SSSD was built on this platform? |
Hi @alexey-tikhonov, It's an armv7l machine running Debian and using stock SSSD package. Unfortunately since I reported this bug I've upgraded it to the newer release "bookworm", but seems that the issue is still there. While it crash at another place in another process (sssd_be) the stack back trace is same: it crashes while trying to format debugging message, more specifically when try to format unsigned long long to unsigned long. Probably it has something to do with the internals of implementation of variadic functions. The problem can be easy reproduced:
|
@dpslavov, do I understand correctly that |
Yes, that's correct. It's a 32-bit platform. |
I tested it and while the sssd don't crash crash anymore and works correctly the RID in debug messages from gpo_child looks bogus: Nov 14 12:12:37 host.domain sssd_be[12395]: [RID#5] All data has been sent! I suppose it's related to missing initialization of |
No, this part is due to mismatch of sizes of Zero init will hide this issue, but isn't a proper solution. I'll add another patch. |
Sizes might not match on some platforms. Resolves: SSSD#6790
@dpslavov, I added a 2nd patch. Could you please test this? I expect this to resolve the issue. Once confirmed, I'll also add zero init but this is for case "--chain-id" arg is totally missing. |
As far as I can see this second patch should be applied alone, without applying the previous one. Correct? |
No, both patches from https://github.com/SSSD/sssd/pull/7031/commits are required. First fixes size mismatch within logger implementation, second fixes size mismatch during arguments parsing. |
No issues were observed after applying the patches and changing |
Just to mention that only following modules were tested: gpo_child, krb5_child, ldap_child, sssd_be, sssd_nss, sssd_pac, sssd_pam and sssd_sudo. |
Thank you for testing. |
Sizes might not match on some platforms. Resolves: SSSD#6790
Sizes might not match on some platforms. Resolves: #6790 Reviewed-by: Justin Stephenson <[email protected]> Reviewed-by: Tomáš Halman <[email protected]>
Resolves: #6790 Reviewed-by: Justin Stephenson <[email protected]> Reviewed-by: Tomáš Halman <[email protected]> (cherry picked from commit 2617dcf)
Sizes might not match on some platforms. Resolves: #6790 Reviewed-by: Justin Stephenson <[email protected]> Reviewed-by: Tomáš Halman <[email protected]> (cherry picked from commit 098bf64)
This is caused by type mismatch for variable
chain_id
, it's declared asuint64_t
(sssd/src/providers/ad/ad_gpo_child.c
Line 662 in 34dba5a
long
(sssd/src/providers/ad/ad_gpo_child.c
Line 681 in 34dba5a
krb5_child
suffers from same mismatch but don't terminates abnormally becausechain_id
is initialized to zero (sssd/src/providers/krb5/krb5_child.c
Line 3998 in 34dba5a
The text was updated successfully, but these errors were encountered: