Groups | Search | Server Info | Keyboard shortcuts | Login | Register [http] [https] [nntp] [nntps]
Groups > gnu.bash.bug > #14661
| From | Chet Ramey <chet.ramey@case.edu> |
|---|---|
| Newsgroups | gnu.bash.bug |
| Subject | Re: bash sockets: printf \x0a does TCP fragmentation |
| Date | 2018-09-25 09:48 -0400 |
| Message-ID | <mailman.1297.1537883316.1284.bug-bash@gnu.org> (permalink) |
| References | (1 earlier) <20180921231101307758654@bob.proulx.com> <714e1ba0-0052-2f2b-676d-778f2b7129c1@testssl.sh> <20180924130533.4ufaxypoelta6f7n@eeg.ccf.org> <5BAA26C6.10906@tlinx.org> <20180925122541.6ik7q3icf22oxvny@eeg.ccf.org> |
On 9/25/18 8:25 AM, Greg Wooledge wrote: > On Tue, Sep 25, 2018 at 05:15:02AM -0700, L A Walsh wrote: >> On 9/24/2018 6:05 AM, Greg Wooledge wrote: >>> On Sat, Sep 22, 2018 at 11:50:17AM +0200, dirk+bash@testssl.sh wrote: >>>> On 9/22/18 7:30 AM, Bob Proulx wrote: >>>>> dirk+bash@testssl.sh wrote: >>>>>> printf -- "$data" >&5 2>/dev/null >>>>> What happens if $data contains % format strings? What happens if the >>>>> format contains a sequence such as \c? This looks problematic. This >>>>> is not a safe programming proctice. >>> >>> Looking ONLY at this one line, there is an obvious bug, which Bob has >>> pointed out. It should be >>> >>> printf %s "$data" >&5 2>/dev/null >> ---- >> This brings to mind a consideration: >> As %s says to print a string of data (presumably not >> including a NUL byte), then what happens if "$data" is >> a paragraph of text with embedded newlines. In that case, >> it sounds like bash might break apart the single printf >> output into smaller packets rather than transmitting the >> entirety of "$data" in 1 write (presuming it is less than >> the maximum data size for a network packet). > > Yes, I'm sure it does. In fact, bash's printf and echo builtins are > already known to use multiple calls to write() even when sockets and > newlines are not involved. Yes, bash does line buffering and provides a buffer for stdout and stderr. This has been noted here previously and isn't specific to printf or echo. -- ``The lyf so short, the craft so long to lerne.'' - Chaucer ``Ars longa, vita brevis'' - Hippocrates Chet Ramey, UTech, CWRU chet@case.edu http://tiswww.cwru.edu/~chet/
Back to gnu.bash.bug | Previous | Next | Find similar | Unroll thread
Re: bash sockets: printf \x0a does TCP fragmentation Chet Ramey <chet.ramey@case.edu> - 2018-09-25 09:48 -0400
csiph-web