Author: daditto
Description:
Hi, I've started investigating my timeout issues when I click on some diffs. And after some debugging, I
came to the following result. There's situation for indefinite loop in _DiffEngine->_lcs_pos() function
on line 930.
I made some debug logging on when the function goes to indefinite loop:
(each of these values are not changed during while loop and stay until the process is killed)
beg=1,mid=2,end=2,this->seq[mid]=2,ypos=0
beg=1,mid=2,end=2,this->seq[mid]=6,ypos=5
beg=3,mid=4,end=4,this->seq[mid]=4,ypos=2
beg=13,mid=14,end=14,this->seq[mid]=22,ypos=10
beg=11,mid=12,end=12,this->seq[mid]=20,ypos=9
As you see in all these cases while ($beg < $end) will last forever.
This issue is critical, because this hangs the servers up. Few of search engine bots can hang apache
server in a few minutes (if there's no php time limit).
Version: 1.6.x
Severity: critical
Platform: PC