git.vger.kernel.org archive mirror
 help / color / mirror / Atom feed
* [PATCH] opening files in remote.c should ensure it is opening a file
@ 2008-02-08 16:46 H.Merijn Brand
  2008-02-08 17:25 ` Mike Ralphson
                   ` (2 more replies)
  0 siblings, 3 replies; 27+ messages in thread
From: H.Merijn Brand @ 2008-02-08 16:46 UTC (permalink / raw)
  To: git

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/

^ permalink raw reply	[flat|nested] 27+ messages in thread

end of thread, other threads:[~2008-02-18 11:32 UTC | newest]

Thread overview: 27+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2008-02-08 16:46 [PATCH] opening files in remote.c should ensure it is opening a file H.Merijn Brand
2008-02-08 17:25 ` Mike Ralphson
2008-02-08 20:04   ` H.Merijn Brand
2008-02-18  9:10     ` H.Merijn Brand
2008-02-18  9:30       ` Junio C Hamano
2008-02-18 11:31         ` H.Merijn Brand
2008-02-08 20:36   ` Daniel Barkalow
2008-02-08 20:44     ` Johannes Schindelin
2008-02-09  5:27     ` Junio C Hamano
2008-02-09  5:54       ` Daniel Barkalow
2008-02-08 20:09 ` Junio C Hamano
2008-02-08 20:38   ` Johannes Schindelin
2008-02-09 10:03   ` H.Merijn Brand
2008-02-08 20:15 ` Morten Welinder
2008-02-08 20:33   ` Junio C Hamano
2008-02-08 20:40     ` Johannes Schindelin
2008-02-08 21:19       ` Junio C Hamano
2008-02-08 21:47         ` Johannes Schindelin
2008-02-08 20:58     ` Brandon Casey
2008-02-08 21:14       ` Brandon Casey
2008-02-09  5:12       ` Junio C Hamano
2008-02-09  1:20     ` Brandon Casey
2008-02-09  2:32       ` [PATCH] Add compat/fopen.c which returns NULL on attempt to open directory Brandon Casey
2008-02-11  9:29         ` H.Merijn Brand
2008-02-11 10:15           ` H.Merijn Brand
2008-02-12  0:20             ` Junio C Hamano
2008-02-12 15:27               ` H.Merijn Brand

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).