From: Jonathan Nieder Date: Thu, 26 Dec 2013 20:28:05 GMT Subject: Re: [PATCH] git-svn: workaround for a bug in svn serf backend Message-ID: <20131226202805.GV20443@google.com> In-Reply-To: <1388059524-4864-1-git-send-email-rkagan@mail.ru> Roman Kagan wrote: > Subversion serf backend in versions 1.8.5 and below has a bug that the > function creating the descriptor of a file change -- add_file() -- > doesn't make a copy of its 3d argument when storing it on the returned 3d makes me think of 3-dimensional. ;-) I think you mean third (or the abbreviation 3rd). > descriptor. As a result, by the time this field is used (in > transactions of file copying or renaming) it may well be released. Please describe the symptom so this patch is easy to find when other people run into it. Do I remember correctly that "... released and scribbled over with a new value, causing such-and-such assertion to fire" was what happened? > This patch works around this bug, by storing the value to be passed as > the 3d argument to add_file() in a local variable with the same scope as > the file change descriptor, making sure their lifetime is the same. Could this be reproduced with a test script to make sure we don't reintroduce the bug again later? (It's okay if the test only fails on machines with the problematic svn version.) Modulo the confusing 3-dimensional arguments in comments, the code change looks good. Thanks and hope that helps, Jonathan