summaryrefslogtreecommitdiffabout
path: root/scan-tree.c
authorStefan Gehn <stefan@srcbox.net>2011-03-26 08:51:39 (UTC)
committer Lars Hjemli <hjemli@gmail.com>2011-03-26 10:44:16 (UTC)
commitf15c5833d2190bc62e0e1e3e9753ef33230ecd53 (patch) (side-by-side diff)
treea81dd18bd692d7a5fb00c38910b871c5ffc29464 /scan-tree.c
parentcc59ee502646dc4e3d0f8bbe29b24c7fa3f0d2dd (diff)
downloadcgit-f15c5833d2190bc62e0e1e3e9753ef33230ecd53.zip
cgit-f15c5833d2190bc62e0e1e3e9753ef33230ecd53.tar.gz
cgit-f15c5833d2190bc62e0e1e3e9753ef33230ecd53.tar.bz2
Fix crash when projectsfile cannot be opened
This patch makes cgit properly abort in case the projectsfile cannot be opened. Without the added return cgit continues using the projects pointer which is NULL and thus causes a segfault.
Diffstat (limited to 'scan-tree.c') (more/less context) (show whitespace changes)
-rw-r--r--scan-tree.c1
1 files changed, 1 insertions, 0 deletions
diff --git a/scan-tree.c b/scan-tree.c
index 627af1b..e5a4baf 100644
--- a/scan-tree.c
+++ b/scan-tree.c
@@ -216,12 +216,13 @@ void scan_projects(const char *path, const char *projectsfile, repo_config_fn fn
int err;
projects = fopen(projectsfile, "r");
if (!projects) {
fprintf(stderr, "Error opening projectsfile %s: %s (%d)\n",
projectsfile, strerror(errno), errno);
+ return;
}
while (fgets(line, sizeof(line), projects) != NULL) {
for (z = &lastc(line);
strlen(line) && strchr("\n\r", *z);
z = &lastc(line))
*z = '\0';