diff --git a/bsdiff.c b/bsdiff.c index 6b761bd..f203875 100644 --- a/bsdiff.c +++ b/bsdiff.c @@ -237,7 +237,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; @@ -255,7 +256,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