Skip to content

Commit

Permalink
Do not segfault when unescaping empty links
Browse files Browse the repository at this point in the history
  • Loading branch information
vmg committed Apr 27, 2011
1 parent 8f0988a commit 1d84ecc
Show file tree
Hide file tree
Showing 2 changed files with 11 additions and 12 deletions.
15 changes: 6 additions & 9 deletions render/xhtml.c
Original file line number Diff line number Diff line change
Expand Up @@ -64,15 +64,12 @@ uri_escape(struct buf *ob, const char *src, size_t size)
}

switch (c) {
case ';':
case '/':
case '?':
case ':':
case '@':
case '=':
case '#':
case '&':
case '.':
case ';': case '/':
case '?': case ':':
case '@': case '=':
case '#': case '&':
case '.': case '+':
case '-':
bufputc(ob, c);
continue;
}
Expand Down
8 changes: 5 additions & 3 deletions src/markdown.c
Original file line number Diff line number Diff line change
Expand Up @@ -687,7 +687,7 @@ char_autolink(struct buf *ob, struct render *rndr, char *data, size_t offset, si
struct buf *u_link = rndr_newbuf(rndr);
unscape_text(u_link, &work);

rndr->make.autolink(ob, &work, MKDA_NORMAL, rndr->make.opaque);
rndr->make.autolink(ob, u_link, MKDA_NORMAL, rndr->make.opaque);
rndr_popbuf(rndr);
}

Expand Down Expand Up @@ -895,8 +895,10 @@ char_link(struct buf *ob, struct render *rndr, char *data, size_t offset, size_t
else parse_inline(content, rndr, data + 1, txt_e - 1);
}

u_link = rndr_newbuf(rndr);
unscape_text(u_link, link);
if (link) {
u_link = rndr_newbuf(rndr);
unscape_text(u_link, link);
}

/* calling the relevant rendering function */
if (is_img) {
Expand Down

0 comments on commit 1d84ecc

Please sign in to comment.