Am 28.04.2012 10:58, schrieb Denys Vlasenko: > On Fri, Apr 27, 2012 at 3:25 PM, walter harms <[email protected]> wrote: >>>>>>> touch null >>>>>>> lpr null <- never returns >>>>>> >>>>>> Can't reproduce. >>>>>> >>>>>> Please strace it. >>>>> >>>>> Hello Denis, >>>>> can you reproduce it using "lpr -Plp@remote null" ? >>>>> >>>>> from strace: >>>>> ... >>>>> read(3, "\0", 1) = 1 >>>>> write(3, "\0", 1) = 1 >>>>> read(3, 0x7ffff39a19b0, 1) = ? ERESTARTSYS (To be restarted) >>>>> <!-- last before SIGINT -> > > BTW, can you send a larger strace log fragment? > >>> It looks ok. We sent zero bytes of the file, >>> then sent NUL byte as end-of-file indicator, >>> and we wait for remote host to ACK or NAK it. >>> >>>> When i add a file size check it seems to work. >>>> >>>> the problem is located here: >>>> static void get_response_or_say_and_die(int fd, const char *errmsg) >>>> { >>>> ssize_t sz; >>>> char buf[128]; >>>> >>>> buf[0] = ' '; >>>> sz = safe_read(fd, buf, 1); <-- never returns >>>> >>>> i do not know the lpr specs but i guess a file size of 0 is not permitted. >>> >>> I didn't find any such restriction. Zero byte file is ok >>> (it does not make much sense, but is valid). >>> >>> I think you lpd server is just buggy. >> >> would it hurt to prevent zero sized files to be send ? >> at least the lpr version i tested reject zero size files. > > It does not reject them. It simply does not send ANY response, > positive or negative. This looks like a bug. > > What next, reject print jobs which contain only whitespace? > >> lpr zero (CUPS version) >> lpr: No file!?! > > Can you send a strace log of this command? >
log attached re, wh
xx.gz
Description: GNU Zip compressed data
_______________________________________________ busybox mailing list [email protected] http://lists.busybox.net/mailman/listinfo/busybox
