Bug #75910 [Com]: convert.base64-encode omits padding bytes

From: Date: Thu, 14 Mar 2019 12:09:46 +0000
Subject: Bug #75910 [Com]: convert.base64-encode omits padding bytes
References: 1  Groups: php.bugs 
Request: Send a blank email to php-bugs+get-219959@lists.php.net to get a copy of this message
Edit report at https://bugs.php.net/bug.php?id=75910&edit=1 ID: 75910 Comment by: alessandro dot lai85 at gmail dot com Reported by: me at levisflorian dot name Summary: convert.base64-encode omits padding bytes Status: Verified Type: Bug Package: Streams related Operating System: macOS 10.13.3 (via brew) PHP Version: 7.2.2 Assigned To: pollita Block user comment: N Private report: N New Comment: It seems that this bug is not limited to macOS, and it's affecting PHP 7.2.0 up to the latest 7.3 (which is 7.3.3 RN). Proof: https://3v4l.org/NnFV2 Previous Comments: ------------------------------------------------------------------------ [2018-09-20 05:13:08] tenzzor at gmail dot com Hi guys. Found the same issue. I added a patch, which I think might be more generic solution. In case of filtered stream, while loops until eof on stream. However, when we successfully read from stream and reached EOF on stream, flags are still set to NORMAL, next iteration won't happen, because there is EOF and filter is never notified of EOF. This does not happen on php://memory stream right now, because on read it returns all data up to EOF, but does not mark stream as EOF. Then on next read it figures there is no more data in buffer, marks stream as eof and returns 0 read. ------------------------------------------------------------------------ [2018-07-08 18:01:11] cmb@php.net Confirmed: <https://3v4l.org/HFW1e>. Apparently, this regression has been introduced by commit 0a45e8f[1]. Sara, could you please have a look at this? [1] <https://github.com/php/php-src/commit/0a45e8f096a04464bda6277c6f3d0b5461737a27> ------------------------------------------------------------------------ [2018-02-02 22:19:46] me at levisflorian dot name Change "package" from "Filter related" to "Streams related" ------------------------------------------------------------------------ [2018-02-02 22:09:24] me at levisflorian dot name Description: ------------ When using temp stream, filter convert.base64-encode omits padding bytes. Actually on php 7.2.1 (instead of 7.2.2 selected above) - multiple php versions installed with brew.sh Found a similar bug on old php version #68532 (https://bugs.php.net/bug.php?id=68532) Test script: --------------- Please find test script (based on #68532) here: https://gist.github.com/Gounlaf/c54dce4f843e89d4f5814eb7790cdcd3 Expected result: ---------------- encode - low-level - memory = dGVzdA== decode - low-level - memory = test encode - low-level - temp = dGVzdA== decode - low-level - temp = test Actual result: -------------- encode - low-level - memory = dGVzdA== decode - low-level - memory = test encode - low-level - temp = dGVz decode - low-level - temp = test ------------------------------------------------------------------------ -- Edit this bug report at https://bugs.php.net/bug.php?id=75910&edit=1

« previous php.bugs (#219959) next »