uniq: always store previous line length
A bug was introduced in the NUL support refactor leading to the length of the previous line only being saved if the previous line was shorter than the current line. If triggered this lead to copying too much data into the previous line buffer. Behavior before: printf '1234\na\n' | ./uniq 1234 a 4 Behavior after: printf '1234\na\n' | ./uniq 1234 a
This commit is contained in:
parent
515525997c
commit
d4f7ecd334
4
uniq.c
4
uniq.c
@ -62,9 +62,9 @@ uniqline(FILE *ofp, struct line *l)
|
||||
|
||||
if (l) {
|
||||
if (!prevl.data || l->len >= prevl.len) {
|
||||
prevl.len = l->len;
|
||||
prevl.data = erealloc(prevl.data, prevl.len);
|
||||
prevl.data = erealloc(prevl.data, l->len);
|
||||
}
|
||||
prevl.len = l->len;
|
||||
memcpy(prevl.data, l->data, prevl.len);
|
||||
prevoff = loff;
|
||||
}
|
||||
|
Loading…
Reference in New Issue
Block a user