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

Infinite loop in singlesocket #3970

ericwuseattle opened this issue May 30, 2019 · 2 comments


None yet
2 participants
Copy link

commented May 30, 2019

(gdb) p *entry
$29 = {
list = {
head = 0x80be848,
tail = 0x80be848,
dtor = 0x0,
size = 1
action = 1,
socketp = 0x0,
users = 1,
readers = 1,
writers = 0

  1. the loop i = 0 to MAX_SOCKSPEREASYHANDLE

  2. i was setting back to 0

  3. when entry action == comboaction will go back 1) and i = 1, 2) will set to 0 again. loop forever.
    // comboaction = 1, entry->action = 1

could we make a change to use index rather re-using i?
For example:
/* check if new for this transfer */
int index = 0;
for(index; index < data->numsocks; index++) {

bagder added a commit that referenced this issue May 31, 2019

singlesocket: use separate variable for inner loop
An inner loop within the singlesocket() function wrongly re-used the
variable for the outer loop which then could cause an infinite
loop. Change to using a separate variable!

Reported-by: Eric Wu
Fixes #3970

This comment has been minimized.

Copy link

commented May 31, 2019

Thanks, I agree with your conclusion and I've proposed PR #3973 to fix this!

@bagder bagder self-assigned this May 31, 2019


This comment has been minimized.

Copy link

commented May 31, 2019

@bagder bagder closed this in c36f428 Jun 1, 2019

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
You can’t perform that action at this time.