]> git.armaanb.net Git - stagit.git/commitdiff
Fix null pointer access for submodules in writefilestree
authorQuentin Rameau <quinq@fifth.space>
Fri, 29 Apr 2016 12:01:45 +0000 (14:01 +0200)
committerHiltjo Posthuma <hiltjo@codemadness.org>
Fri, 29 Apr 2016 13:54:57 +0000 (15:54 +0200)
Do not try to set a link to submodules from bare repo as we can't get
the actual url.

stagit.c

index 7b16f3259580ede62ae66dfb7ec8037b3fb74e68..206dca191b5f833e4ca2e368c255565d166fbb36 100644 (file)
--- a/stagit.c
+++ b/stagit.c
@@ -709,13 +709,18 @@ writefilestree(FILE *fp, git_tree *tree, const char *branch, const char *path)
                                fprintf(fp, "%juB", (uintmax_t)filesize);
                        fputs("</td></tr>\n", fp);
                } else if (git_submodule_lookup(&module, repo, entryname) == 0) {
-                       moduleurl = git_submodule_url(module);
-                       fprintf(fp, "<tr><td>m---------</td><td><a class=\"module\" href=\"%s\">",
-                               moduleurl);
+                       fputs("<tr><td>m---------</td><td>", fp);
+                       if ((moduleurl = git_submodule_url(module))) {
+                               fprintf(fp, "<a class=\"module\" href=\"%s\">",
+                                       moduleurl);
+                       }
                        xmlencode(fp, entrypath, strlen(entrypath));
-                       fputs(" @", fp);
-                       xmlencode(fp, moduleurl, strlen(moduleurl));
-                       fprintf(fp, "</a></td><td class=\"num\">0%c",
+                       if (moduleurl) {
+                               fputs(" @", fp);
+                               xmlencode(fp, moduleurl, strlen(moduleurl));
+                               fputs("</a>", fp);
+                       }
+                       fprintf(fp, "</td><td class=\"num\">0%c",
                                showlinecount ? 'L' : 'B');
                        git_submodule_free(module);
                        fputs("</td></tr>\n", fp);