Alexey Serbin created KUDU-3646:
-----------------------------------

             Summary: Base64Decode() corrupts data by discarding trailing bytes 
encoded as 'A'
                 Key: KUDU-3646
                 URL: https://issues.apache.org/jira/browse/KUDU-3646
             Project: Kudu
          Issue Type: Bug
          Components: hms, master, server, tserver, util
    Affects Versions: 1.17.1, 1.17.0, 1.16.0, 1.15.0, 1.14.0, 1.13.0, 1.11.1, 
1.12.0, 1.11.0, 1.10.1, 1.10.0, 1.9.0, 1.7.1, 1.8.0, 1.7.0, 1.6.0, 1.5.0, 
1.4.0, 1.3.1, 1.3.0, 1.2.0, 1.1.0, 1.0.1, 1.0.0, 0.10.0, 0.9.1, 0.9.0, 0.8.0, 
0.7.1, 0.7.0
            Reporter: Alexey Serbin


The implementation of {{Base64Decode()}} imported from Impala in 
{{src/kudu/util/url-coding.cc}} contains a bug that leads to 
truncating/corrupting the data by discarding trailing null bytes encoded as 'A' 
in BASE64.

For example, {{Base64Decode("YQAA", ...)}} produces {{string("a")}} instead of 
{{string("a\0\0", 3)}}.  The problem doesn't manifest itself when current 
implementation of {{Base64Decode()}} is used for text/ASCII data, but using it 
for binary data (e.g., zlib-compressed) leads to unexpected results.




--
This message was sent by Atlassian Jira
(v8.20.10#820010)

Reply via email to