Skip to content
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

BUG: The concurrency of settimeofday and ssh connect would lead to coredump #4772

Closed
wangle6 opened this issue Nov 22, 2017 · 2 comments
Closed

Comments

@wangle6
Copy link

wangle6 commented Nov 22, 2017

Hi, pals:
we found a coredump when we do ssh connection. the basic information as follow:

the stack trace in coredump:
(gdb) bt
#0 0x20007510 in raise () from /lib/libc.so.6
#1 0x2000c718 in abort () from /lib/libc.so.6
#2 0x2053d42c in __mulvsi3 (a=, b=) at /home/l00194794/yocto/c08_sdk/sdk/build/script/cpu_hcc/ppc-linux/../../../toolchain_soft/ppc-linux/src/gcc-4.7.1/libgcc/libgcc2.c:159
#3 0x2050d030 in ms_subtract_diff (start=start@entry=0xbfa20a9c, ms=0x48027c40, ms@entry=0xbfa20a98) at misc.c:871
#4 0x204d2568 in ssh_exchange_identification (timeout_ms=timeout_ms@entry=5000) at sshconnect.c:580
#5 0x204d3e3c in ssh_login (sensitive=sensitive@entry=0x20586ea8, orighost=, hostaddr=hostaddr@entry=0x20586e28, port=, pw=pw@entry=0x20589ae8, timeout_ms=5000)
at sshconnect.c:1346
#6 0x204c433c in main (ac=, av=) at ssh.c:1326

the direct cause of the coredump, is that the function __mulvsi3 in gcc checked the plus operation is overflow, then this gcc function abort().

the reason of the overflow is cause by the time-setting operation when do ssh connect. in function ms_subtract_diff . the timeoutp get a very big value because of the time-change.

So could we add a limitation for the differ of the 2 values get from gettimeofday ? if it's too big, would lead to overflow, we set a default value and report a warning log.

thanks for you attention and expect your reply.
B.R.
Le Wang

@paulidale
Copy link
Contributor

Are you sure this is an OpenSSL problem?
It looks like an OpenSSH one.

The functions and source files mentioned don't exist in OpenSSL.

@wangle6
Copy link
Author

wangle6 commented Nov 22, 2017

you are right. it's an OpenSSH probel. Sorry for wasting your time.

@wangle6 wangle6 closed this as completed Nov 22, 2017
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

No branches or pull requests

2 participants