Re: [PATCH] submodule: Port resolve_relative_url from shell to C

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



On Fri, Jan 15, 2016 at 9:37 AM, Junio C Hamano <gitster@xxxxxxxxx> wrote:
> Stefan Beller <sbeller@xxxxxxxxxx> writes:
>
>> On Wed, Jan 13, 2016 at 2:03 PM, Junio C Hamano <gitster@xxxxxxxxx> wrote:
>>> Stefan Beller <sbeller@xxxxxxxxxx> writes:
>>>> +     while (url) {
>>>> +             if (starts_with_dot_dot_slash(url)) {
>>>> +                     char *rfind;
>>>> +                     url += 3;
>>>> +
>>>> +                     rfind = last_dir_separator(remoteurl);
>>>> +                     if (rfind)
>>>> +                             *rfind = '\0';
>>>> +                     else {
>>>> +                             rfind = strrchr(remoteurl, ':');
>>>> +                             if (rfind) {
>>>> +                                     *rfind = '\0';
>>>> +                                     colonsep = 1;
>>>> +                             } else {
>>>> +                                     if (is_relative || !strcmp(".", remoteurl))
>>>> +                                             die(_("cannot strip one component off url '%s'"), remoteurl);
>>>> +                                     else
>>>> +                                             remoteurl = xstrdup(".");
>>>> +                             }
>>>> +                     }
>>>
>>> It is somewhat hard to see how this avoids stripping one (or both)
>>> slashes just after "http:" in remoteurl="http://site/path/";, leaving
>>> just "http:/" (or "http:").
>>
>> it would leave just 'http:/' if url were to be ../../some/where/else,
>> such that the constructed url below would be http://some/where/else.
>
> Is that a good outcome, though?  Isn't it something we would want to
> catch as an error?

I would want to add theses checks later and for now
just port over the code from shell to C. (The same issue
is found in the shell code and nobody seems to bother so far)
--
To unsubscribe from this list: send the line "unsubscribe git" in
the body of a message to majordomo@xxxxxxxxxxxxxxx
More majordomo info at  http://vger.kernel.org/majordomo-info.html



[Index of Archives]     [Linux Kernel Development]     [Gcc Help]     [IETF Annouce]     [DCCP]     [Netdev]     [Networking]     [Security]     [V4L]     [Bugtraq]     [Yosemite]     [MIPS Linux]     [ARM Linux]     [Linux Security]     [Linux RAID]     [Linux SCSI]     [Fedora Users]