Loading nfq/protocol.c +10 −11 Original line number Diff line number Diff line Loading @@ -888,28 +888,27 @@ bool QUICDefragCrypto(const uint8_t *clean,size_t clean_len, uint8_t *defrag,siz if ((pos+sz)>clean_len) return false; if ((offset+sz)>defrag_data_len) return false; // defrag buf overflow // remove exact duplicates early to save cpu for(i=0;i<range;i++) if (ranges[i].offset==offset && ranges[i].len==sz) goto skip_range; if (zeropos < offset) // make sure no uninitialized gaps exist in case of not full fragment coverage memset(defrag_data+zeropos,0,offset-zeropos); if ((offset+sz) > zeropos) zeropos=offset+sz; memcpy(defrag_data+offset,clean+pos,sz); if ((offset+sz) > szmax) szmax = offset+sz; found=true; pos+=sz; // remove exact duplicates early to save cpu for(i=0;i<range;i++) if (ranges[i].offset==offset && ranges[i].len==sz) goto endloop; if ((offset+sz) > szmax) szmax = offset+sz; memcpy(defrag_data+offset,clean+pos,sz); ranges[range].offset = offset; ranges[range].len = sz; range++; skip_range: pos+=sz; } endloop: } if (found) { Loading Loading
nfq/protocol.c +10 −11 Original line number Diff line number Diff line Loading @@ -888,28 +888,27 @@ bool QUICDefragCrypto(const uint8_t *clean,size_t clean_len, uint8_t *defrag,siz if ((pos+sz)>clean_len) return false; if ((offset+sz)>defrag_data_len) return false; // defrag buf overflow // remove exact duplicates early to save cpu for(i=0;i<range;i++) if (ranges[i].offset==offset && ranges[i].len==sz) goto skip_range; if (zeropos < offset) // make sure no uninitialized gaps exist in case of not full fragment coverage memset(defrag_data+zeropos,0,offset-zeropos); if ((offset+sz) > zeropos) zeropos=offset+sz; memcpy(defrag_data+offset,clean+pos,sz); if ((offset+sz) > szmax) szmax = offset+sz; found=true; pos+=sz; // remove exact duplicates early to save cpu for(i=0;i<range;i++) if (ranges[i].offset==offset && ranges[i].len==sz) goto endloop; if ((offset+sz) > szmax) szmax = offset+sz; memcpy(defrag_data+offset,clean+pos,sz); ranges[range].offset = offset; ranges[range].len = sz; range++; skip_range: pos+=sz; } endloop: } if (found) { Loading