{"thread":{"id":"520","subject":"[PATCH] git-tar-tree: Lift path length limit","startedAt":"2005-05-07T00:25:27Z","lastAt":"2005-05-07T18:42:55Z","messageCount":4,"participants":["Rene Scharfe","Petr Baudis","Junio C Hamano"],"isPatch":true,"patchVersion":1,"patchTotal":null},"messages":[{"id":"2727","messageId":"20050507002527.GA5082@lsrfire.ath.cx","threadId":"520","inReplyTo":null,"subject":"[PATCH] git-tar-tree: Lift path length limit","fromName":"Rene Scharfe","fromEmail":"rene.scharfe@lsrfire.ath.cx","sentAt":"2005-05-07T00:25:27Z","receivedAt":"2005-05-07T00:25:27Z","isPatch":true,"sender":{"key":"l.s.r@web.de","avatar":"https://avatars.githubusercontent.com/u/26122331?v=4"},"body":"Last minute patch?  This lifts the limits from path length and link\npath length that are in git-tar-tree.\n\nHave a nice vacation!\n\nRene\n\n\nSigned-off-by: Rene Scharfe <rene.scharfe@lsrfire.ath.cx>\n\n---\ncommit 2d7b8f2afc47c753aaab4bf48587fdea730b0db3\ntree 378fae86e43460c1c53feccbde3573ced26818f6\nparent a02ebff6127c5fc981668fb570f0a80f2b7657ca\nauthor Rene Scharfe <rene.scharfe@lsrfire.ath.cx> 1115320521 +0200\ncommitter Rene Scharfe <rene.scharfe@lsrfire.ath.cx> 1115320521 +0200\n\nIndex: tar-tree.c\n===================================================================\n--- 8477488c1965186c98b59ad0da04d221aff3c9a1/tar-tree.c  (mode:100644 sha1:a09cb416595094e493a52dd7f45d943c81c0310a)\n+++ 378fae86e43460c1c53feccbde3573ced26818f6/tar-tree.c  (mode:100644 sha1:0fb6514c27a0f0edc2fc6e9850c361c8a58c0a9f)\n@@ -212,7 +212,7 @@\n                                   const char *path, unsigned int namelen,\n                                   void *content, unsigned int contentsize)\n {\n-\tchar *p;\n+\tchar *buffer, *p;\n \tunsigned int pathlen, size, linkpathlen = 0;\n \n \tsize = pathlen = extended_header_len(\"path\", namelen);\n@@ -220,18 +220,18 @@\n \t\tlinkpathlen = extended_header_len(\"linkpath\", contentsize);\n \t\tsize += linkpathlen;\n \t}\n-\tif (size > RECORDSIZE)\n-\t\tdie(\"tar-tree: extended header too big, wtf?\");\n \twrite_header(NULL, TYPEFLAG_EXT_HEADER, NULL, NULL, headerfilename,\n \t             0100600, NULL, size);\n \n-\tp = get_record();\n+\tbuffer = p = malloc(size);\n+\tif (!buffer)\n+\t\tdie(\"git-tar-tree: %s\", strerror(errno));\n \tappend_extended_header_prefix(&p, pathlen, \"path\");\n \tappend_path(&p, is_dir, basepath, prefix, path);\n \tappend_char(&p, '\\n');\n \tif (flags & EXT_HEADER_LINKPATH)\n \t\tappend_extended_header(&p, \"linkpath\", content, contentsize);\n-\twrite_if_needed();\n+\twrite_blocked(buffer, size);\n }\n \n static void write_global_extended_header(const char *sha1)\n@@ -269,9 +269,7 @@\n \t}\n \n \tnamelen = path_len(S_ISDIR(mode), basepath, prefix, path);\n-\tif (namelen > 500)\n-\t\tdie(\"tar-tree: name too log of object %s\\n\", sha1_to_hex(sha1));\n-\telse if (namelen > 100)\n+\tif (namelen > 100)\n \t\text_header |= EXT_HEADER_PATH;\n \tif (typeflag == TYPEFLAG_LNK && size > 100)\n \t\text_header |= EXT_HEADER_LINKPATH;\n"},{"id":"2730","messageId":"20050507005706.GA6093@lsrfire.ath.cx","threadId":"520","inReplyTo":"20050507002527.GA5082@lsrfire.ath.cx","subject":"Re: [PATCH] git-tar-tree: Lift path length limit","fromName":"Rene Scharfe","fromEmail":"rene.scharfe@lsrfire.ath.cx","sentAt":"2005-05-07T00:57:06Z","receivedAt":"2005-05-07T00:57:06Z","isPatch":true,"sender":{"key":"l.s.r@web.de","avatar":"https://avatars.githubusercontent.com/u/26122331?v=4"},"body":"On Sat, May 07, 2005 at 02:25:27AM +0200, Rene Scharfe wrote:\n> Last minute patch?\n\nThis leaks memory.  D'oh!\n\nPetr, would you add the (hopefully) fixed version below to your tree now\nthat Linus is on vacation?  (Patch applies to tip of GIT tree.)\n\nThanks,\nRene\n\n\n\nLift path length limits from git-tar-tree.\n\nSigned-off-by: Rene Scharfe <rene.scharfe@lsrfire.ath.cx>\n\n---\ncommit d36797f64ee0431e6a73aa1c77a7fe7c18b6ce9f\ntree ab8e6967a08ac343b69b527f663e6a9722fcea08\nparent bf60144c0ab50e88c0086a90c5cb35b81613ad14\nauthor Rene Scharfe <rene.scharfe@lsrfire.ath.cx> 1115322098 +0200\ncommitter Rene Scharfe <rene.scharfe@lsrfire.ath.cx> 1115322098 +0200\n\nIndex: tar-tree.c\n===================================================================\n--- 8ef25a2788d6c225641a3040622b82c364f987b8/tar-tree.c  (mode:100644 sha1:9d9bd7be98502f64e4a643ef0973182f3483251e)\n+++ ab8e6967a08ac343b69b527f663e6a9722fcea08/tar-tree.c  (mode:100644 sha1:8b0d75bd2cf12a531aee3d51e59a8ac8102ba6be)\n@@ -212,7 +212,7 @@\n                                   const char *path, unsigned int namelen,\n                                   void *content, unsigned int contentsize)\n {\n-\tchar *p;\n+\tchar *buffer, *p;\n \tunsigned int pathlen, size, linkpathlen = 0;\n \n \tsize = pathlen = extended_header_len(\"path\", namelen);\n@@ -220,18 +220,19 @@\n \t\tlinkpathlen = extended_header_len(\"linkpath\", contentsize);\n \t\tsize += linkpathlen;\n \t}\n-\tif (size > RECORDSIZE)\n-\t\tdie(\"tar-tree: extended header too big, wtf?\");\n \twrite_header(NULL, TYPEFLAG_EXT_HEADER, NULL, NULL, headerfilename,\n \t             0100600, NULL, size);\n \n-\tp = get_record();\n+\tbuffer = p = malloc(size);\n+\tif (!buffer)\n+\t\tdie(\"git-tar-tree: %s\", strerror(errno));\n \tappend_extended_header_prefix(&p, pathlen, \"path\");\n \tappend_path(&p, is_dir, basepath, prefix, path);\n \tappend_char(&p, '\\n');\n \tif (flags & EXT_HEADER_LINKPATH)\n \t\tappend_extended_header(&p, \"linkpath\", content, contentsize);\n-\twrite_if_needed();\n+\twrite_blocked(buffer, size);\n+\tfree(buffer);\n }\n \n static void write_global_extended_header(const char *sha1)\n@@ -269,9 +270,7 @@\n \t}\n \n \tnamelen = path_len(S_ISDIR(mode), basepath, prefix, path);\n-\tif (namelen > 500)\n-\t\tdie(\"tar-tree: name too log of object %s\\n\", sha1_to_hex(sha1));\n-\telse if (namelen > 100)\n+\tif (namelen > 100)\n \t\text_header |= EXT_HEADER_PATH;\n \tif (typeflag == TYPEFLAG_LNK && size > 100)\n \t\text_header |= EXT_HEADER_LINKPATH;\n"},{"id":"2745","messageId":"20050507120935.GB9495@pasky.ji.cz","threadId":"520","inReplyTo":"20050507005706.GA6093@lsrfire.ath.cx","subject":"Re: [PATCH] git-tar-tree: Lift path length limit","fromName":"Petr Baudis","fromEmail":"pasky@ucw.cz","sentAt":"2005-05-07T12:09:35Z","receivedAt":"2005-05-07T12:09:35Z","isPatch":true,"sender":{"key":"pasky@ucw.cz","avatar":"https://avatars.githubusercontent.com/u/18439?v=4"},"body":"Dear diary, on Sat, May 07, 2005 at 02:57:06AM CEST, I got a letter\nwhere Rene Scharfe <rene.scharfe@lsrfire.ath.cx> told me that...\n> On Sat, May 07, 2005 at 02:25:27AM +0200, Rene Scharfe wrote:\n> > Last minute patch?\n> \n> This leaks memory.  D'oh!\n> \n> Petr, would you add the (hopefully) fixed version below to your tree now\n> that Linus is on vacation?  (Patch applies to tip of GIT tree.)\n\nIt appears to me that the patch currently in the git tree is this\n(correct) one?\n\n-- \n\t\t\t\tPetr \"Pasky\" Baudis\nStuff: http://pasky.or.cz/\nC++: an octopus made by nailing extra legs onto a dog. -- Steve Taylor\n"},{"id":"2751","messageId":"7vpsw2andc.fsf@assigned-by-dhcp.cox.net","threadId":"520","inReplyTo":"20050507120935.GB9495@pasky.ji.cz","subject":"Re: [PATCH] git-tar-tree: Lift path length limit","fromName":"Junio C Hamano","fromEmail":"junkio@cox.net","sentAt":"2005-05-07T18:42:55Z","receivedAt":"2005-05-07T18:42:55Z","isPatch":true,"sender":{"key":"gitster@pobox.com","avatar":"https://avatars.githubusercontent.com/u/54884?v=4"},"body":">>>>> \"PB\" == Petr Baudis <pasky@ucw.cz> writes:\n\nPB> Dear diary, on Sat, May 07, 2005 at 02:57:06AM CEST, I got a letter\nPB> where Rene Scharfe <rene.scharfe@lsrfire.ath.cx> told me that...\n>> On Sat, May 07, 2005 at 02:25:27AM +0200, Rene Scharfe wrote:\n>> > Last minute patch?\n>> \n>> This leaks memory.  D'oh!\n>> \n>> Petr, would you add the (hopefully) fixed version below to your tree now\n>> that Linus is on vacation?  (Patch applies to tip of GIT tree.)\n\nPB> It appears to me that the patch currently in the git tree is this\nPB> (correct) one?\n\nYes it was merged before Linus left the machine last night.\n\n"}]}