On Mon, Nov 17, 2014 at 06:21:22PM +0100, Peter Schlaile wrote:
> Package: lpr
> Version: 1:2008.05.17+nmu1
> Severity: important
> Tags: patch
> 
> Dear Maintainer,
> 
> lpr fails to accept print jobs, if the spool directory is located on 
> a partition larger or equal to 1TB.
> 
> Status to remote hosts looks like
> "no space on remote; waiting for queue to drain"


Thank you for the bug report. Looking at the sources, it seems this
has been fixed upstream already with the following patch,

@@ -298,9 +298,11 @@ noresponse(void)
 static int
 chksize(int size)
 {
-       int spacefree;
+       int64_t spacefree;
        struct statfs sfb;

+       if (size <= 0)
+               return (0);
        if (statfs(".", &sfb) < 0) {
                syslog(LOG_ERR, "%s: %m", "statfs(\".\")");
                return (1);


> Reason: lpd/chksize() makes certain assumptions about spacefree in 512 byte
> blocks (stores it into a signed 32 bit int, 512*pow(2,31) equals 1 TB, things
> go havoc, bla bla).
> 
> Changing the local variable spacefree into a long long fixes the problem:
> 
> --- lpr-2008.05.17+nmu1/lpd/recvjob.c 2005-01-29 05:40:20.000000000 +0100
> +++ lpr-2008.05.17+nmu1.new/lpd/recvjob.c     2014-11-17 17:57:56.000000000 
> +0100
> @@ -298,7 +298,7 @@
>  static int
>  chksize(int size)
>  {
> -     int spacefree;
> +     long long spacefree;
>       struct statfs sfb;
>  
>       if (statfs(".", &sfb) < 0) {

-- 
Adam Majer
ad...@zombino.com


-- 
To UNSUBSCRIBE, email to debian-bugs-dist-requ...@lists.debian.org
with a subject of "unsubscribe". Trouble? Contact listmas...@lists.debian.org

Reply via email to