Thread (35 messages) flat view 35 messages, 11 authors, 2016-06-15

Re: [PATCH 1/2] entry.c: convert checkout_entry to use strbuf

From: Antoine Pelisse <hidden>
Date: 2016-06-15 22:59:03

On Wed, Oct 23, 2013 at 2:55 PM, Nguyễn Thái Ngọc Duy [off-list ref] wrote:
The old code does not do boundary check so any paths longer than
PATH_MAX can cause buffer overflow. Replace it with strbuf to handle
paths of arbitrary length.

Signed-off-by: Nguyễn Thái Ngọc Duy <redacted>
---
 To get this topic going again. These two patches kill PATH_MAX in
 entry.c and builtin/checkout-index.c
Thanks !
quoted hunk ↗ jump to hunk
diff --git a/entry.c b/entry.c
index acc892f..d955af5 100644
--- a/entry.c
+++ b/entry.c
@@ -237,16 +237,18 @@ static int check_path(const char *path, int len, struct stat *st, int skiplen)
 int checkout_entry(struct cache_entry *ce,
                   const struct checkout *state, char *topath)
 {
-       static char path[PATH_MAX + 1];
+       static struct strbuf path_buf = STRBUF_INIT;
+       char *path;
        struct stat st;
-       int len = state->base_dir_len;
+       int len;

        if (topath)
                return write_entry(ce, topath, state, 1);

-       memcpy(path, state->base_dir, len);
-       strcpy(path + len, ce->name);
-       len += ce_namelen(ce);
+       strbuf_reset(&path_buf);
I think this is not required

-- 
-- 
*** Please reply-to-all at all times ***
*** (do not pretend to know who is subscribed and who is not) ***
*** Please avoid top-posting. ***
The msysGit Wiki is here: https://github.com/msysgit/msysgit/wiki - Github accounts are free.

You received this message because you are subscribed to the Google
Groups "msysGit" group.
To post to this group, send email to msysgit@googlegroups.com
To unsubscribe from this group, send email to
msysgit+unsubscribe@googlegroups.com
For more options, and view previous threads, visit this group at
http://groups.google.com/group/msysgit?hl=en_US?hl=en

--- 
You received this message because you are subscribed to the Google Groups "msysGit" group.
To unsubscribe from this group and stop receiving emails from it, send an email to msysgit+unsubscribe@googlegroups.com.
For more options, visit https://groups.google.com/groups/opt_out.
Keyboard shortcuts
hback out one level
jnext message in thread
kprevious message in thread
ldrill in
Escclose help / fold thread tree
?toggle this help