forked from OSchip/llvm-project
[sancov] coverage-report-server.py: ServerHandler(): open file as UTF8
Summary: This is nessesary in Python3. Everywhere else we assume that encoding is UTF8. If we don't specify it here, the defaults from the environment will be used, which may result in ASCII decoder being used. And if the file is non-ASCII, then it will crash: ``` File "/usr/local/bin/coverage-report-server.py", line 168, in do_GET for line_no, line in enumerate(f, start=1)]) File "/usr/local/bin/coverage-report-server.py", line 165, in <listcomp> ["<span class='{cls}'>{line} </span>".format( File "/usr/lib/python3.5/encodings/ascii.py", line 26, in decode return codecs.ascii_decode(input, self.errors)[0] UnicodeDecodeError: 'ascii' codec can't decode byte 0xc3 in position 106: ordinal not in range(128) ``` Fixes https://bugs.llvm.org/show_bug.cgi?id=33548 Now, how would i add a testcase here? Reviewers: m.ostapenko, kcc Reviewed By: kcc Subscribers: kcc, llvm-commits Tags: #sanitizers Differential Revision: https://reviews.llvm.org/D37661 llvm-svn: 313063
This commit is contained in:
parent
44ee6e4179
commit
5a9a60cc08
|
@ -160,7 +160,7 @@ class ServerHandler(http.server.BaseHTTPRequestHandler):
|
|||
|
||||
linemap = self.symcov_data.compute_linemap(filename)
|
||||
|
||||
with open(filepath, 'r') as f:
|
||||
with open(filepath, 'r', encoding='utf8') as f:
|
||||
content = "\n".join(
|
||||
["<span class='{cls}'>{line} </span>".format(
|
||||
line=html.escape(line.rstrip()),
|
||||
|
|
Loading…
Reference in New Issue