HP-UX allows directories to be opened with fopen (path, "r"), which
will cause some translations that expect to read files, read dirs
instead. This patch makes sure the two fopen () calls in remote.c
only open the file if it is a file.
Signed-off-by: H.Merijn Brand <h.m.brand@xs4all.nl>
---
diff -pur git-1.5.4a/remote.c git-1.5.4b/remote.c
--- git-1.5.4a/remote.c 2008-01-27 09:04:18 +0100
+++ git-1.5.4/remote.c 2008-02-08 17:38:43 +0100
@@ -121,9 +121,18 @@ static struct branch *make_branch(const
return branches[empty];
}
+/* Helper function to ensure that we are opening a file and not a directory */
+static FILE *open_file(char *full_path)
+{
+ struct stat st_buf;
+ if (stat(full_path, &st_buf) || !S_ISREG(st_buf.st_mode))
+ return NULL;
+ return (fopen(full_path, "r"));
+}
+
static void read_remotes_file(struct remote *remote)
{
- FILE *f = fopen(git_path("remotes/%s", remote->name), "r");
+ FILE *f = open_file(git_path("remotes/%s", remote->name));
if (!f)
return;
@@ -173,7 +182,7 @@ 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");
+ FILE *f = open_file(git_path("branches/%.*s", n, remote->name));
char *s, *p;
int len;
--
git-1.5.4
--
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@vger.kernel.org
More majordomo info at http://vger.kernel.org/majordomo-info.html