commit: fix a segfault when displaying a commit with unreachable parents
[gitweb.git] / xdiff-interface.c
index f7d6f988298e3906a1a525fed484dc093404e4f9..08602f522183dc43787616f37cba9b8af4e3dade 100644 (file)
@@ -1,10 +1,10 @@
 #include "cache.h"
 #include "xdiff-interface.h"
 
-static int parse_num(char **cp_p, unsigned int *num_p)
+static int parse_num(char **cp_p, int *num_p)
 {
        char *cp = *cp_p;
-       unsigned int num = 0;
+       int num = 0;
        int read_some;
 
        while ('0' <= *cp && *cp <= '9')
@@ -17,8 +17,8 @@ static int parse_num(char **cp_p, unsigned int *num_p)
 }
 
 int parse_hunk_header(char *line, int len,
-                     unsigned int *ob, unsigned int *on,
-                     unsigned int *nb, unsigned int *nn)
+                     int *ob, int *on,
+                     int *nb, int *nn)
 {
        char *cp;
        cp = line + 4;
@@ -69,9 +69,9 @@ int xdiff_outf(void *priv_, mmbuffer_t *mb, int nbuf)
        for (i = 0; i < nbuf; i++) {
                if (mb[i].ptr[mb[i].size-1] != '\n') {
                        /* Incomplete line */
-                       priv->remainder = realloc(priv->remainder,
-                                                 priv->remainder_size +
-                                                 mb[i].size);
+                       priv->remainder = xrealloc(priv->remainder,
+                                                  priv->remainder_size +
+                                                  mb[i].size);
                        memcpy(priv->remainder + priv->remainder_size,
                               mb[i].ptr, mb[i].size);
                        priv->remainder_size += mb[i].size;
@@ -83,9 +83,9 @@ int xdiff_outf(void *priv_, mmbuffer_t *mb, int nbuf)
                        consume_one(priv, mb[i].ptr, mb[i].size);
                        continue;
                }
-               priv->remainder = realloc(priv->remainder,
-                                         priv->remainder_size +
-                                         mb[i].size);
+               priv->remainder = xrealloc(priv->remainder,
+                                          priv->remainder_size +
+                                          mb[i].size);
                memcpy(priv->remainder + priv->remainder_size,
                       mb[i].ptr, mb[i].size);
                consume_one(priv, priv->remainder,