git.vger.kernel.org archive mirror
 help / color / mirror / Atom feed
* [PATCH 1/2] cmd_clone: free dir and path buffers
@ 2011-03-31 14:18 Carlos Martín Nieto
  2011-03-31 14:18 ` [PATCH 2/2] cmd_clone: make sure repo is allocated on the stack and free it Carlos Martín Nieto
  2011-03-31 14:45 ` [PATCH 1/2] cmd_clone: free dir and path buffers John Szakmeister
  0 siblings, 2 replies; 6+ messages in thread
From: Carlos Martín Nieto @ 2011-03-31 14:18 UTC (permalink / raw)
  To: git; +Cc: Junio C Hamano

The variables dir and path are always allocated on the stack so it's
always safe to free them.

This memory would be freed by _exit, but it's good form to free memory
you've allocated.

Signed-off-by: Carlos Martín Nieto <cmn@elego.de>
---

 This is a split-up version of an earlier patch. It's not a big deal,
but I had it in a local branch and I though I'd try to have it merged upstream.

 builtin/clone.c |    2 ++
 1 files changed, 2 insertions(+), 0 deletions(-)

diff --git a/builtin/clone.c b/builtin/clone.c
index 2ee1fa9..fe0408c 100644
--- a/builtin/clone.c
+++ b/builtin/clone.c
@@ -665,6 +665,8 @@ int cmd_clone(int argc, const char **argv, const char *prefix)
 			err = run_command_v_opt(argv_submodule, RUN_GIT_CMD);
 	}
 
+	free(dir);
+	free(path);
 	strbuf_release(&reflog_msg);
 	strbuf_release(&branch_top);
 	strbuf_release(&key);
-- 
1.7.4.1

^ permalink raw reply related	[flat|nested] 6+ messages in thread

* [PATCH 2/2] cmd_clone: make sure repo is allocated on the stack and free it
  2011-03-31 14:18 [PATCH 1/2] cmd_clone: free dir and path buffers Carlos Martín Nieto
@ 2011-03-31 14:18 ` Carlos Martín Nieto
  2011-03-31 14:45 ` [PATCH 1/2] cmd_clone: free dir and path buffers John Szakmeister
  1 sibling, 0 replies; 6+ messages in thread
From: Carlos Martín Nieto @ 2011-03-31 14:18 UTC (permalink / raw)
  To: git; +Cc: Junio C Hamano

Make sure that the buffer repo points to is in the stack and free it
afterwards.

Signed-off-by: Carlos Martín Nieto <cmn@elego.de>
---
 builtin/clone.c |    3 ++-
 1 files changed, 2 insertions(+), 1 deletions(-)

diff --git a/builtin/clone.c b/builtin/clone.c
index fe0408c..697b1bf 100644
--- a/builtin/clone.c
+++ b/builtin/clone.c
@@ -415,7 +415,7 @@ int cmd_clone(int argc, const char **argv, const char *prefix)
 	else if (!strchr(repo_name, ':'))
 		die("repository '%s' does not exist", repo_name);
 	else
-		repo = repo_name;
+		repo = xstrdup(repo_name);
 	is_local = path && !is_bundle;
 	if (is_local && option_depth)
 		warning("--depth is ignored in local clones; use file:// instead.");
@@ -667,6 +667,7 @@ int cmd_clone(int argc, const char **argv, const char *prefix)
 
 	free(dir);
 	free(path);
+	free(repo);
 	strbuf_release(&reflog_msg);
 	strbuf_release(&branch_top);
 	strbuf_release(&key);
-- 
1.7.4.1

^ permalink raw reply related	[flat|nested] 6+ messages in thread

* Re: [PATCH 1/2] cmd_clone: free dir and path buffers
  2011-03-31 14:18 [PATCH 1/2] cmd_clone: free dir and path buffers Carlos Martín Nieto
  2011-03-31 14:18 ` [PATCH 2/2] cmd_clone: make sure repo is allocated on the stack and free it Carlos Martín Nieto
@ 2011-03-31 14:45 ` John Szakmeister
  2011-03-31 15:06   ` Carlos Martín Nieto
  1 sibling, 1 reply; 6+ messages in thread
From: John Szakmeister @ 2011-03-31 14:45 UTC (permalink / raw)
  To: Carlos Martín Nieto; +Cc: git, Junio C Hamano

On Thu, Mar 31, 2011 at 10:18 AM, Carlos Martín Nieto <cmn@elego.de> wrote:
> The variables dir and path are always allocated on the stack so it's
> always safe to free them.

I think you mean "on the heap". :-)

-John

^ permalink raw reply	[flat|nested] 6+ messages in thread

* Re: [PATCH 1/2] cmd_clone: free dir and path buffers
  2011-03-31 14:45 ` [PATCH 1/2] cmd_clone: free dir and path buffers John Szakmeister
@ 2011-03-31 15:06   ` Carlos Martín Nieto
  2011-03-31 15:10     ` Carlos Martín Nieto
  0 siblings, 1 reply; 6+ messages in thread
From: Carlos Martín Nieto @ 2011-03-31 15:06 UTC (permalink / raw)
  To: John Szakmeister; +Cc: git, Junio C Hamano

On jue, 2011-03-31 at 10:45 -0400, John Szakmeister wrote:
> On Thu, Mar 31, 2011 at 10:18 AM, Carlos Martín Nieto <cmn@elego.de> wrote:
> > The variables dir and path are always allocated on the stack so it's
> > always safe to free them.
> 
> I think you mean "on the heap". :-)

 Indeed I do 

   cmn

^ permalink raw reply	[flat|nested] 6+ messages in thread

* [PATCH 1/2] cmd_clone: free dir and path buffers
  2011-03-31 15:06   ` Carlos Martín Nieto
@ 2011-03-31 15:10     ` Carlos Martín Nieto
  2011-03-31 15:10       ` [PATCH 2/2] cmd_clone: make sure repo is allocated on the heap and free it Carlos Martín Nieto
  0 siblings, 1 reply; 6+ messages in thread
From: Carlos Martín Nieto @ 2011-03-31 15:10 UTC (permalink / raw)
  To: git; +Cc: Junio C Hamano

The variables dir and path are always allocated on the heap so it's
always safe to free them.

This memory would be freed by _exit, but it's good form to free memory
you've allocated.

Signed-off-by: Carlos Martín Nieto <cmn@elego.de>
---

Hopefully this time there are no silly mistakes.

 builtin/clone.c |    2 ++
 1 files changed, 2 insertions(+), 0 deletions(-)

diff --git a/builtin/clone.c b/builtin/clone.c
index 2ee1fa9..fe0408c 100644
--- a/builtin/clone.c
+++ b/builtin/clone.c
@@ -665,6 +665,8 @@ int cmd_clone(int argc, const char **argv, const char *prefix)
 			err = run_command_v_opt(argv_submodule, RUN_GIT_CMD);
 	}
 
+	free(dir);
+	free(path);
 	strbuf_release(&reflog_msg);
 	strbuf_release(&branch_top);
 	strbuf_release(&key);
-- 
1.7.4.1

^ permalink raw reply related	[flat|nested] 6+ messages in thread

* [PATCH 2/2] cmd_clone: make sure repo is allocated on the heap and free it
  2011-03-31 15:10     ` Carlos Martín Nieto
@ 2011-03-31 15:10       ` Carlos Martín Nieto
  0 siblings, 0 replies; 6+ messages in thread
From: Carlos Martín Nieto @ 2011-03-31 15:10 UTC (permalink / raw)
  To: git; +Cc: Junio C Hamano

Make sure that the buffer repo points to is in the heap and free it
afterwards.

Signed-off-by: Carlos Martín Nieto <cmn@elego.de>
---
 builtin/clone.c |    3 ++-
 1 files changed, 2 insertions(+), 1 deletions(-)

diff --git a/builtin/clone.c b/builtin/clone.c
index fe0408c..697b1bf 100644
--- a/builtin/clone.c
+++ b/builtin/clone.c
@@ -415,7 +415,7 @@ int cmd_clone(int argc, const char **argv, const char *prefix)
 	else if (!strchr(repo_name, ':'))
 		die("repository '%s' does not exist", repo_name);
 	else
-		repo = repo_name;
+		repo = xstrdup(repo_name);
 	is_local = path && !is_bundle;
 	if (is_local && option_depth)
 		warning("--depth is ignored in local clones; use file:// instead.");
@@ -667,6 +667,7 @@ int cmd_clone(int argc, const char **argv, const char *prefix)
 
 	free(dir);
 	free(path);
+	free(repo);
 	strbuf_release(&reflog_msg);
 	strbuf_release(&branch_top);
 	strbuf_release(&key);
-- 
1.7.4.1

^ permalink raw reply related	[flat|nested] 6+ messages in thread

end of thread, other threads:[~2011-03-31 15:10 UTC | newest]

Thread overview: 6+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2011-03-31 14:18 [PATCH 1/2] cmd_clone: free dir and path buffers Carlos Martín Nieto
2011-03-31 14:18 ` [PATCH 2/2] cmd_clone: make sure repo is allocated on the stack and free it Carlos Martín Nieto
2011-03-31 14:45 ` [PATCH 1/2] cmd_clone: free dir and path buffers John Szakmeister
2011-03-31 15:06   ` Carlos Martín Nieto
2011-03-31 15:10     ` Carlos Martín Nieto
2011-03-31 15:10       ` [PATCH 2/2] cmd_clone: make sure repo is allocated on the heap and free it Carlos Martín Nieto

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).