* [PATCH] branch.c: delete size check of newly tracked branch names
@ 2014-02-28 11:09 Jacopo Notarstefano
2014-02-28 11:16 ` Jacopo Notarstefano
2014-02-28 11:41 ` Duy Nguyen
0 siblings, 2 replies; 5+ messages in thread
From: Jacopo Notarstefano @ 2014-02-28 11:09 UTC (permalink / raw)
To: git; +Cc: Jacopo Notarstefano, mhagger, christian.couder
Since commit 6f084a56 the length of a newly tracked branch name was limited
to 1019 = 1024 - 7 - 7 - 1 characters, a bound derived by having to store
this name in a char[1024] called key with two strings of length at most 7
and a '\0' character.
This was no longer necessary as of commit a9f2c136, which uses a strbuf
(documented in Documentation/technical/api-strbuf.txt) to store this value.
This patch removes this unneeded check and thus allows for branch names
longer than 1019 characters.
Signed-off-by: Jacopo Notarstefano <jacopo.notarstefano@gmail.com>
---
Submitted as GSoC microproject #3.
branch.c | 4 ----
1 file changed, 4 deletions(-)
diff --git a/branch.c b/branch.c
index 723a36b..05feaff 100644
--- a/branch.c
+++ b/branch.c
@@ -114,10 +114,6 @@ static int setup_tracking(const char *new_ref, const char *orig_ref,
struct tracking tracking;
int config_flags = quiet ? 0 : BRANCH_CONFIG_VERBOSE;
- if (strlen(new_ref) > 1024 - 7 - 7 - 1)
- return error(_("Tracking not set up: name too long: %s"),
- new_ref);
-
memset(&tracking, 0, sizeof(tracking));
tracking.spec.dst = (char *)orig_ref;
if (for_each_remote(find_tracked_branch, &tracking))
--
1.9.0.1.g5abca64
^ permalink raw reply related [flat|nested] 5+ messages in thread* Re: [PATCH] branch.c: delete size check of newly tracked branch names
2014-02-28 11:09 [PATCH] branch.c: delete size check of newly tracked branch names Jacopo Notarstefano
@ 2014-02-28 11:16 ` Jacopo Notarstefano
2014-02-28 11:41 ` Duy Nguyen
1 sibling, 0 replies; 5+ messages in thread
From: Jacopo Notarstefano @ 2014-02-28 11:16 UTC (permalink / raw)
To: git; +Cc: Jacopo Notarstefano, Michael Haggerty, Christian Couder
> This patch removes this unneeded check and thus allows for branch names
> longer than 1019 characters.
>
Ach! I amended the commit in my local history to read "Remove this
unneded check and thus allow for branch names longer than 1019
characters", but for some reason git format-patch -1 --signoff isn't
reflecting this change.
^ permalink raw reply [flat|nested] 5+ messages in thread
* Re: [PATCH] branch.c: delete size check of newly tracked branch names
2014-02-28 11:09 [PATCH] branch.c: delete size check of newly tracked branch names Jacopo Notarstefano
2014-02-28 11:16 ` Jacopo Notarstefano
@ 2014-02-28 11:41 ` Duy Nguyen
2014-02-28 12:14 ` Jacopo Notarstefano
1 sibling, 1 reply; 5+ messages in thread
From: Duy Nguyen @ 2014-02-28 11:41 UTC (permalink / raw)
To: Jacopo Notarstefano; +Cc: Git Mailing List, Michael Haggerty, Christian Couder
On Fri, Feb 28, 2014 at 6:09 PM, Jacopo Notarstefano
<jacopo.notarstefano@gmail.com> wrote:
> Since commit 6f084a56 the length of a newly tracked branch name was limited
> to 1019 = 1024 - 7 - 7 - 1 characters, a bound derived by having to store
> this name in a char[1024] called key with two strings of length at most 7
> and a '\0' character.
>
> This was no longer necessary as of commit a9f2c136, which uses a strbuf
> (documented in Documentation/technical/api-strbuf.txt) to store this value.
>
> This patch removes this unneeded check and thus allows for branch names
> longer than 1019 characters.
Nice. new_ref is passed in install_branch_config() in latest code. I
guess you already made sure this function did not make any assumption
about new_ref's length?
>
> Signed-off-by: Jacopo Notarstefano <jacopo.notarstefano@gmail.com>
> ---
>
> Submitted as GSoC microproject #3.
>
> branch.c | 4 ----
> 1 file changed, 4 deletions(-)
>
> diff --git a/branch.c b/branch.c
> index 723a36b..05feaff 100644
> --- a/branch.c
> +++ b/branch.c
> @@ -114,10 +114,6 @@ static int setup_tracking(const char *new_ref, const char *orig_ref,
> struct tracking tracking;
> int config_flags = quiet ? 0 : BRANCH_CONFIG_VERBOSE;
>
> - if (strlen(new_ref) > 1024 - 7 - 7 - 1)
> - return error(_("Tracking not set up: name too long: %s"),
> - new_ref);
> -
> memset(&tracking, 0, sizeof(tracking));
> tracking.spec.dst = (char *)orig_ref;
> if (for_each_remote(find_tracked_branch, &tracking))
> --
> 1.9.0.1.g5abca64
>
> --
> To unsubscribe from this list: send the line "unsubscribe git" in
> the body of a message to majordomo@vger.kernel.org
> More majordomo info at http://vger.kernel.org/majordomo-info.html
--
Duy
^ permalink raw reply [flat|nested] 5+ messages in thread* Re: [PATCH] branch.c: delete size check of newly tracked branch names
2014-02-28 11:41 ` Duy Nguyen
@ 2014-02-28 12:14 ` Jacopo Notarstefano
2014-02-28 12:43 ` Duy Nguyen
0 siblings, 1 reply; 5+ messages in thread
From: Jacopo Notarstefano @ 2014-02-28 12:14 UTC (permalink / raw)
To: Duy Nguyen; +Cc: Git Mailing List, Michael Haggerty, Christian Couder
> Nice. new_ref is passed in install_branch_config() in latest code. I
> guess you already made sure this function did not make any assumption
> about new_ref's length?
>
The function install_branch_config uses the strbuf, as I wrote in the
commit message. The contents of this buffer are then fed to
git_config_set, which, after a few more function calls, parses the key
with git_config_parse_key. This function does not rely on any
assumptions (as far as I can tell!) on the name's length, and
allocates enough space for it in
https://github.com/git/git/blob/master/config.c#L1462.
^ permalink raw reply [flat|nested] 5+ messages in thread
* Re: [PATCH] branch.c: delete size check of newly tracked branch names
2014-02-28 12:14 ` Jacopo Notarstefano
@ 2014-02-28 12:43 ` Duy Nguyen
0 siblings, 0 replies; 5+ messages in thread
From: Duy Nguyen @ 2014-02-28 12:43 UTC (permalink / raw)
To: Jacopo Notarstefano; +Cc: Git Mailing List, Michael Haggerty, Christian Couder
On Fri, Feb 28, 2014 at 7:14 PM, Jacopo Notarstefano
<jacopo.notarstefano@gmail.com> wrote:
>> Nice. new_ref is passed in install_branch_config() in latest code. I
>> guess you already made sure this function did not make any assumption
>> about new_ref's length?
>>
>
> The function install_branch_config uses the strbuf, as I wrote in the
> commit message. The contents of this buffer are then fed to
> git_config_set, which, after a few more function calls, parses the key
> with git_config_parse_key. This function does not rely on any
> assumptions (as far as I can tell!) on the name's length, and
> allocates enough space for it in
> https://github.com/git/git/blob/master/config.c#L1462.
Thanks for checking!
--
Duy
^ permalink raw reply [flat|nested] 5+ messages in thread
end of thread, other threads:[~2014-02-28 12:43 UTC | newest]
Thread overview: 5+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2014-02-28 11:09 [PATCH] branch.c: delete size check of newly tracked branch names Jacopo Notarstefano
2014-02-28 11:16 ` Jacopo Notarstefano
2014-02-28 11:41 ` Duy Nguyen
2014-02-28 12:14 ` Jacopo Notarstefano
2014-02-28 12:43 ` Duy Nguyen
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).