]> gitweb.ps.run Git - ps-cgit/blobdiff - parsing.c
ui-log: ban strcpy()
[ps-cgit] / parsing.c
index fd1ea9967cb68adc13f2efb555815a2e5da63812..9e73e70c3cf909125f7444c7d7f96ea6c87466eb 100644 (file)
--- a/parsing.c
+++ b/parsing.c
@@ -63,8 +63,7 @@ static char *substr(const char *head, const char *tail)
        if (tail < head)
                return xstrdup("");
        buf = xmalloc(tail - head + 1);
-       strncpy(buf, head, tail - head);
-       buf[tail - head] = '\0';
+       strlcpy(buf, head, tail - head + 1);
        return buf;
 }
 
@@ -78,7 +77,7 @@ static void parse_user(const char *t, char **name, char **email, unsigned long *
 
                email_len = ident.mail_end - ident.mail_begin;
                *email = xmalloc(strlen("<") + email_len + strlen(">") + 1);
-               sprintf(*email, "<%.*s>", email_len, ident.mail_begin);
+               xsnprintf(*email, email_len + 3, "<%.*s>", email_len, ident.mail_begin);
 
                if (ident.date_begin)
                        *date = strtoul(ident.date_begin, NULL, 10);
@@ -200,7 +199,7 @@ struct taginfo *cgit_parse_tag(struct tag *tag)
        const char *p;
        struct taginfo *ret = NULL;
 
-       data = read_sha1_file(tag->object.oid.hash, &type, &size);
+       data = read_object_file(&tag->object.oid, &type, &size);
        if (!data || type != OBJ_TAG)
                goto cleanup;