X-Git-Url: https://gitweb.ps.run/ps-cgit/blobdiff_plain/22a597e56dc7fdea78ccbcb7466b45dd62cf7b32..ba1769cb6438f3a08da8cf1308eb8efad3ce573b:/html.c diff --git a/html.c b/html.c index d7d9fd7..d86b2c1 100644 --- a/html.c +++ b/html.c @@ -112,14 +112,16 @@ void html_attr(char *txt) char *t = txt; while(t && *t){ int c = *t; - if (c=='<' || c=='>' || c=='\'') { + if (c=='<' || c=='>' || c=='\'' || c=='\"') { write(htmlfd, txt, t - txt); if (c=='>') html(">"); else if (c=='<') html("<"); else if (c=='\'') - html(""e;"); + html("'"); + else if (c=='"') + html("""); txt = t+1; } t++; @@ -238,19 +240,20 @@ int hextoint(char c) char *convert_query_hexchar(char *txt) { - int d1, d2; - if (strlen(txt) < 3) { + int d1, d2, n; + n = strlen(txt); + if (n < 3) { *txt = '\0'; return txt-1; } d1 = hextoint(*(txt+1)); d2 = hextoint(*(txt+2)); if (d1<0 || d2<0) { - strcpy(txt, txt+3); + memmove(txt, txt+3, n-3); return txt-1; } else { *txt = d1 * 16 + d2; - strcpy(txt+1, txt+3); + memmove(txt+1, txt+3, n-2); return txt; } }