Skip to content

Commit

Permalink
Issue 404: Read past end of string parsing fflags
Browse files Browse the repository at this point in the history
  • Loading branch information
kientzle committed Feb 7, 2015
1 parent 97f964e commit 1cbc76f
Showing 1 changed file with 4 additions and 6 deletions.
10 changes: 4 additions & 6 deletions libarchive/archive_entry.c
Original file line number Diff line number Diff line change
Expand Up @@ -1745,13 +1745,12 @@ ae_strtofflags(const char *s, unsigned long *setp, unsigned long *clrp)
*end != ' ' && *end != ',')
end++;
for (flag = flags; flag->name != NULL; flag++) {
if (memcmp(start, flag->name, end - start) == 0) {
if (strcmp(start, flag->name) == 0) {
/* Matched "noXXXX", so reverse the sense. */
clear |= flag->set;
set |= flag->clear;
break;
} else if (memcmp(start, flag->name + 2, end - start)
== 0) {
} else if (strcmp(start, flag->name + 2) == 0) {
/* Matched "XXXX", so don't reverse. */
set |= flag->set;
clear |= flag->clear;
Expand Down Expand Up @@ -1809,13 +1808,12 @@ ae_wcstofflags(const wchar_t *s, unsigned long *setp, unsigned long *clrp)
*end != L' ' && *end != L',')
end++;
for (flag = flags; flag->wname != NULL; flag++) {
if (wmemcmp(start, flag->wname, end - start) == 0) {
if (wstrcmp(start, flag->wname) == 0) {
/* Matched "noXXXX", so reverse the sense. */
clear |= flag->set;
set |= flag->clear;
break;
} else if (wmemcmp(start, flag->wname + 2, end - start)
== 0) {
} else if (wstrcmp(start, flag->wname + 2) == 0) {
/* Matched "XXXX", so don't reverse. */
set |= flag->set;
clear |= flag->clear;
Expand Down

0 comments on commit 1cbc76f

Please sign in to comment.