diff --git a/bsdiff.c b/bsdiff.c index 628f1c1..1cb58d4 100644 --- a/bsdiff.c +++ b/bsdiff.c @@ -221,7 +221,8 @@ static int bsdiff_internal(const struct bsdiff_request req) { int64_t *I,*V; int64_t scan,pos,len; - int64_t lastscan,lastpos,lastoffset; + int64_t lastscan,lastpos,lastoffset,lastwrittenscan,lastwrittenpos; + int64_t ctrlcur[3], ctrlnext[3]; int64_t oldscore,scsc; int64_t s,Sf,lenf,Sb,lenb; int64_t overlap,Ss,lens; @@ -239,7 +240,8 @@ static int bsdiff_internal(const struct bsdiff_request req) /* Compute the differences, writing ctrl as we go */ scan=0;len=0;pos=0; - lastscan=0;lastpos=0;lastoffset=0; + lastscan=0;lastpos=0;lastoffset=lastwrittenscan=lastwrittenpos=0; + ctrlcur[0]=0;ctrlcur[1]=0;ctrlcur[2]=0; while(scan