X-Git-Url: https://asedeno.scripts.mit.edu/gitweb/?a=blobdiff_plain;f=attr.c;h=741db3b468c6a6ebbcd1414e42b4ef7d6ab3cc9d;hb=5d3d1cacc139194672a6a184509bb620a19b2497;hp=129399310ae061a66527ce0b723cc0aeb30ef34c;hpb=f16eb1f6a3f9a1a09a61f0cd07e9c9ff9ee54530;p=git.git diff --git a/attr.c b/attr.c index 129399310..741db3b46 100644 --- a/attr.c +++ b/attr.c @@ -160,12 +160,7 @@ static const char *parse_attr(const char *src, int lineno, const char *cp, else if (!equals) e->setto = ATTR__TRUE; else { - char *value; - int vallen = ep - equals; - value = xmalloc(vallen); - memcpy(value, equals+1, vallen-1); - value[vallen-1] = 0; - e->setto = value; + e->setto = xmemdupz(equals + 1, ep - equals - 1); } e->attr = git_attr(cp, len); } @@ -214,8 +209,11 @@ static struct match_attr *parse_attr_line(const char *line, const char *src, num_attr = 0; cp = name + namelen; cp = cp + strspn(cp, blank); - while (*cp) + while (*cp) { cp = parse_attr(src, lineno, cp, &num_attr, res); + if (!cp) + return NULL; + } if (pass) break; res = xcalloc(1,