提交 a02ad882 编写于 作者: J Junio C Hamano

Merge branch 'ye/http-extract-charset'

* ye/http-extract-charset:
  http: fix charset detection of extract_content_type()
...@@ -927,7 +927,7 @@ static int extract_param(const char *raw, const char *name, ...@@ -927,7 +927,7 @@ static int extract_param(const char *raw, const char *name,
return -1; return -1;
raw++; raw++;
while (*raw && !isspace(*raw)) while (*raw && !isspace(*raw) && *raw != ';')
strbuf_addch(out, *raw++); strbuf_addch(out, *raw++);
return 0; return 0;
} }
...@@ -971,7 +971,7 @@ static void extract_content_type(struct strbuf *raw, struct strbuf *type, ...@@ -971,7 +971,7 @@ static void extract_content_type(struct strbuf *raw, struct strbuf *type,
strbuf_reset(charset); strbuf_reset(charset);
while (*p) { while (*p) {
while (isspace(*p)) while (isspace(*p) || *p == ';')
p++; p++;
if (!extract_param(p, "charset", charset)) if (!extract_param(p, "charset", charset))
return; return;
......
...@@ -19,6 +19,10 @@ case "$PATH_INFO" in ...@@ -19,6 +19,10 @@ case "$PATH_INFO" in
printf "text/plain; charset=utf-16" printf "text/plain; charset=utf-16"
charset=utf-16 charset=utf-16
;; ;;
*odd-spacing*)
printf "text/plain; foo=bar ;charset=utf-16; other=nonsense"
charset=utf-16
;;
esac esac
printf "\n" printf "\n"
......
...@@ -191,5 +191,10 @@ test_expect_success 'http error messages are reencoded' ' ...@@ -191,5 +191,10 @@ test_expect_success 'http error messages are reencoded' '
grep "this is the error message" stderr grep "this is the error message" stderr
' '
test_expect_success 'reencoding is robust to whitespace oddities' '
test_must_fail git clone "$HTTPD_URL/error/odd-spacing" 2>stderr &&
grep "this is the error message" stderr
'
stop_httpd stop_httpd
test_done test_done
Markdown is supported
0% .
You are about to add 0 people to the discussion. Proceed with caution.
先完成此消息的编辑!
想要评论请 注册