uuencode: allow space instead of "`" as padding char. Closes 10046
Signed-off-by: Denys Vlasenko <vda.linux@googlemail.com>
This commit is contained in:
parent
90678f0cd7
commit
7b6e8f3f1a
@ -47,10 +47,16 @@ static void FAST_FUNC read_stduu(FILE *src_stream, FILE *dst_stream, int flags U
|
||||
line = xmalloc_fgets_str_len(src_stream, "\n", &line_len);
|
||||
if (!line)
|
||||
break;
|
||||
/* Handle both Unix and MSDOS text, and stray trailing spaces */
|
||||
/* Handle both Unix and MSDOS text.
|
||||
* Note: space should not be trimmed, some encoders use it instead of "`"
|
||||
* for padding of last incomplete 4-char block.
|
||||
*/
|
||||
str_len = line_len;
|
||||
while (--str_len >= 0 && isspace(line[str_len]))
|
||||
while (--str_len >= 0
|
||||
&& (line[str_len] == '\n' || line[str_len] == '\r')
|
||||
) {
|
||||
line[str_len] = '\0';
|
||||
}
|
||||
|
||||
if (strcmp(line, "end") == 0) {
|
||||
return; /* the only non-error exit */
|
||||
@ -65,7 +71,7 @@ static void FAST_FUNC read_stduu(FILE *src_stream, FILE *dst_stream, int flags U
|
||||
|
||||
encoded_len = line[0] * 4 / 3;
|
||||
/* Check that line is not too short. (we tolerate
|
||||
* overly _long_ line to accommodate possible extra '`').
|
||||
* overly _long_ line to accommodate possible extra "`").
|
||||
* Empty line case is also caught here. */
|
||||
if (str_len <= encoded_len) {
|
||||
break; /* go to bb_error_msg_and_die("short file"); */
|
||||
|
Loading…
Reference in New Issue
Block a user