History

Skip unknown header fields when parsing tags and commits

Both the commit- and tagparser failed to handle unexpected header fields. This adds futureproofing by simply skipping any header we don't know/care about.

Lars Hjemli committed 19 years ago

Commit 13d2b0b1 parent fd394891 file · +6 −0Browse files

Unified · Split

parsing.c+6−0
@@ -233,6 +233,9 @@ struct commitinfo *cgit_parse_commit(struct commit *commit) · 232 unmodified lines
233233 p = strchr(t, '\n') + 1;
234234 }
235235
236+ while (*p && (*p != '\n'))
237+ p = strchr(p, '\n') + 1; // skip unknown header fields
238+
236239 while (*p == '\n')
237240 p = strchr(p, '\n') + 1;
238241
@@ -292,6 +295,9 @@ struct taginfo *cgit_parse_tag(struct tag *tag) · 53 unmodified lines
292295 p = strchr(p, '\n') + 1;
293296 }
294297
298+ while (p && *p && (*p != '\n'))
299+ p = strchr(p, '\n') + 1; // skip unknown tag fields
300+
295301 while (p && (*p == '\n'))
296302 p = strchr(p, '\n') + 1;
297303 if (p && *p)