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
233 p = strchr(t, '\n') + 1;233 p = strchr(t, '\n') + 1;
234 }234 }
235 235
236 while (*p && (*p != '\n'))
237 p = strchr(p, '\n') + 1; // skip unknown header fields
238
236 while (*p == '\n')239 while (*p == '\n')
237 p = strchr(p, '\n') + 1;240 p = strchr(p, '\n') + 1;
238 241
@@ -292,6 +295,9 @@ struct taginfo *cgit_parse_tag(struct tag *tag) · 53 unmodified lines
292 p = strchr(p, '\n') + 1;295 p = strchr(p, '\n') + 1;
293 }296 }
294 297
298 while (p && *p && (*p != '\n'))
299 p = strchr(p, '\n') + 1; // skip unknown tag fields
300
295 while (p && (*p == '\n'))301 while (p && (*p == '\n'))
296 p = strchr(p, '\n') + 1;302 p = strchr(p, '\n') + 1;
297 if (p && *p)303 if (p && *p)