On Fri, 8 Feb 2008 16:50:08 +0100, "H.Merijn Brand" <h.m.brand@xxxxxxxxx> wrote: > I'm (again) trying to port git-1.5.4 to HP-UX, and I've already got rather > far, but I'm hitting some stuff I cannot explain. > > t5405-send-pack-rewind.sh fails the 'git fetch .. master:master' part in > the setup, as deep down, read_branches_file () is called with in remote > the name "..". > > The file that it tries to open using git_path () is ".git/branches/.." > That is weird. That is not a file, but a dir. "../.git/branches" would > be more logical, but whatever. HP-UX 11.00 will gladly return a valid > FILE * for opening a directory with fopen (), which, when read, will > return anything but what is expected. So, maybe read_branches_file () > should be protected against opening anything but files. Maybe with some > stat () and S_ISREG ()'s. Something like this seems so `fix' this specific problem. Feel free to take another approach, t5405 now passes --8<--- remote.c.diff --- remote.c.org 2008-01-27 09:04:18 +0100 +++ remote.c 2008-02-08 17:01:09 +0100 @@ -1,6 +1,7 @@ #include "cache.h" #include "remote.h" #include "refs.h" +#include <sys/stat.h> static struct remote **remotes; static int allocated_remotes; @@ -173,11 +174,15 @@ static void read_branches_file(struct re char *frag; char *branch; int n = slash ? slash - remote->name : 1000; - FILE *f = fopen(git_path("branches/%.*s", n, remote->name), "r"); + char *gp = git_path ("branches/%.*s", n, remote->name); + struct stat st_buf; + FILE *f; char *s, *p; int len; - if (!f) + if (stat (gp, &st_buf) || S_ISDIR (st_buf.st_mode)) + return; + if (!(f = fopen(gp, "r"))) return; s = fgets(buffer, BUF_SIZE, f); fclose(f); -->8--- > Or has something gone wrong earlier on? > > In my case, the returned url is 'l', which cannot be opened: > > fatal: 'l': unable to chdir or not a git archive > fatal: The remote end hung up unexpectedly > > which is cast from upload-pack.c:main () -- H.Merijn Brand Amsterdam Perl Mongers (http://amsterdam.pm.org/) using & porting perl 5.6.2, 5.8.x, 5.10.x on HP-UX 10.20, 11.00, 11.11, & 11.23, SuSE 10.1 & 10.2, AIX 5.2, and Cygwin. http://qa.perl.org http://mirrors.develooper.com/hpux/ http://www.test-smoke.org http://www.goldmark.org/jeff/stupid-disclaimers/ - To unsubscribe from this list: send the line "unsubscribe git" in the body of a message to majordomo@xxxxxxxxxxxxxxx More majordomo info at http://vger.kernel.org/majordomo-info.html