Am 20.09.19 um 20:13 schrieb SZEDER Gábor:
>>> @@ -280,12 +269,16 @@ static int name_ref(const char *path, const struct 
>>> object_id *oid, int flags, vo
>>>     if (o && o->type == OBJ_COMMIT) {
>>>             struct commit *commit = (struct commit *)o;
>>>             int from_tag = starts_with(path, "refs/tags/");
>>> +           const char *tip_name;
>>
>> This should not be const because you allocate the buffer it points to
>> right here in the function, in each execution path.
>
> Marking it as const indicates that this function doesn't modify the
> buffer where the pointer points at.

Right, and that's at odds with this code:

>>> +           if (deref)
>>> +                   tip_name = xstrfmt("%s^0", path);
>>> +           else
>>> +                   tip_name = xstrdup(path);

... which allocates said memory and writes a string to it.

René

Reply via email to