Re: kern/189409: [kerberos] Looping detected inside krb5_get_in_tkt (FreeBSD 10 x64)
Old Synopsis: Looping detected inside krb5_get_in_tkt (FreeBSD 10 x64) New Synopsis: [kerberos] Looping detected inside krb5_get_in_tkt (FreeBSD 10 x64) Responsible-Changed-From-To: freebsd-amd64->freebsd-bugs Responsible-Changed-By: linimon Responsible-Changed-When: Wed May 7 15:18:25 UTC 2014 Responsible-Changed-Why: probably not amd64-specific. http://www.freebsd.org/cgi/query-pr.cgi?pr=189409 ___ freebsd-bugs@freebsd.org mailing list http://lists.freebsd.org/mailman/listinfo/freebsd-bugs To unsubscribe, send any mail to "freebsd-bugs-unsubscr...@freebsd.org"
Re: bin/189284: commit references a PR
The following reply was made to PR bin/189284; it has been noted by GNATS. From: dfil...@freebsd.org (dfilter service) To: bug-follo...@freebsd.org Cc: Subject: Re: bin/189284: commit references a PR Date: Wed, 7 May 2014 19:33:34 + (UTC) Author: thomas Date: Wed May 7 19:33:29 2014 New Revision: 265593 URL: http://svnweb.freebsd.org/changeset/base/265593 Log: (dd_out): Fix handling of all-zeroes block at end of input with conv=sparse. This change fixes two separate issues observed when the last output block is all zeroes, and conv=sparse is in use. In this case, care must be taken to roll back the last seek and write the entire last zero block at the original offset where it should have occurred: when the destination file is a block device, it is not possible to roll back by just one character as the write would then not be properly aligned. Furthermore, the buffer used to write this last all-zeroes block needs to be properly zeroed-out. This was not the case previously, resulting in a junk data byte appearing instead of a zero in the output stream. PR: bin/189174 PR: bin/189284 Reviewed by: kib MFC after: 2 weeks Modified: head/bin/dd/dd.c Modified: head/bin/dd/dd.c == --- head/bin/dd/dd.c Wed May 7 19:30:28 2014(r265592) +++ head/bin/dd/dd.c Wed May 7 19:33:29 2014(r265593) @@ -51,6 +51,7 @@ __FBSDID("$FreeBSD$"); #include #include +#include #include #include #include @@ -77,6 +78,7 @@ STAT st; /* statistics */ void (*cfunc)(void); /* conversion function */ uintmax_t cpy_cnt;/* # of blocks to copy */ static off_t pending = 0;/* pending seek if sparse */ +static off_t last_sp = 0;/* size of last added sparse block */ u_int ddflags = 0;/* conversion options */ size_tcbsz; /* conversion block size */ uintmax_t files_cnt = 1; /* # of files to copy */ @@ -174,6 +176,8 @@ setup(void) } else if ((in.db = malloc(MAX(in.dbsz, cbsz) + cbsz)) == NULL || (out.db = malloc(out.dbsz + cbsz)) == NULL) err(1, "output buffer"); + + /* dbp is the first free position in each buffer. */ in.dbp = in.db; out.dbp = out.db; @@ -436,8 +440,15 @@ dd_out(int force) * we play games with the buffer size, and it's usually a partial write. */ outp = out.db; + + /* + * If force, first try to write all pending data, else try to write + * just one block. Subsequently always write data one full block at + * a time at most. + */ for (n = force ? out.dbcnt : out.dbsz;; n = out.dbsz) { - for (cnt = n;; cnt -= nw) { + cnt = n; + do { sparse = 0; if (ddflags & C_SPARSE) { sparse = 1; /* Is buffer sparse? */ @@ -449,18 +460,24 @@ dd_out(int force) } if (sparse && !force) { pending += cnt; + last_sp = cnt; nw = cnt; } else { if (pending != 0) { - if (force) - pending--; + /* If forced to write, and we have no + * data left, we need to write the last + * sparse block explicitly. + */ + if (force && cnt == 0) { + pending -= last_sp; + assert(outp == out.db); + memset(outp, 0, cnt); + } if (lseek(out.fd, pending, SEEK_CUR) == -1) err(2, "%s: seek error creating sparse file", out.name); - if (force) - write(out.fd, outp, 1); - pending = 0; + pending = last_sp = 0; } if (cnt) nw = write(out.fd, outp, cnt); @@ -475,27 +492,29 @@ dd_out(int force) err(1, "%s", out.name); nw = 0; } +
Re: bin/189174: commit references a PR
The following reply was made to PR bin/189174; it has been noted by GNATS. From: dfil...@freebsd.org (dfilter service) To: bug-follo...@freebsd.org Cc: Subject: Re: bin/189174: commit references a PR Date: Wed, 7 May 2014 19:33:34 + (UTC) Author: thomas Date: Wed May 7 19:33:29 2014 New Revision: 265593 URL: http://svnweb.freebsd.org/changeset/base/265593 Log: (dd_out): Fix handling of all-zeroes block at end of input with conv=sparse. This change fixes two separate issues observed when the last output block is all zeroes, and conv=sparse is in use. In this case, care must be taken to roll back the last seek and write the entire last zero block at the original offset where it should have occurred: when the destination file is a block device, it is not possible to roll back by just one character as the write would then not be properly aligned. Furthermore, the buffer used to write this last all-zeroes block needs to be properly zeroed-out. This was not the case previously, resulting in a junk data byte appearing instead of a zero in the output stream. PR: bin/189174 PR: bin/189284 Reviewed by: kib MFC after: 2 weeks Modified: head/bin/dd/dd.c Modified: head/bin/dd/dd.c == --- head/bin/dd/dd.c Wed May 7 19:30:28 2014(r265592) +++ head/bin/dd/dd.c Wed May 7 19:33:29 2014(r265593) @@ -51,6 +51,7 @@ __FBSDID("$FreeBSD$"); #include #include +#include #include #include #include @@ -77,6 +78,7 @@ STAT st; /* statistics */ void (*cfunc)(void); /* conversion function */ uintmax_t cpy_cnt;/* # of blocks to copy */ static off_t pending = 0;/* pending seek if sparse */ +static off_t last_sp = 0;/* size of last added sparse block */ u_int ddflags = 0;/* conversion options */ size_tcbsz; /* conversion block size */ uintmax_t files_cnt = 1; /* # of files to copy */ @@ -174,6 +176,8 @@ setup(void) } else if ((in.db = malloc(MAX(in.dbsz, cbsz) + cbsz)) == NULL || (out.db = malloc(out.dbsz + cbsz)) == NULL) err(1, "output buffer"); + + /* dbp is the first free position in each buffer. */ in.dbp = in.db; out.dbp = out.db; @@ -436,8 +440,15 @@ dd_out(int force) * we play games with the buffer size, and it's usually a partial write. */ outp = out.db; + + /* + * If force, first try to write all pending data, else try to write + * just one block. Subsequently always write data one full block at + * a time at most. + */ for (n = force ? out.dbcnt : out.dbsz;; n = out.dbsz) { - for (cnt = n;; cnt -= nw) { + cnt = n; + do { sparse = 0; if (ddflags & C_SPARSE) { sparse = 1; /* Is buffer sparse? */ @@ -449,18 +460,24 @@ dd_out(int force) } if (sparse && !force) { pending += cnt; + last_sp = cnt; nw = cnt; } else { if (pending != 0) { - if (force) - pending--; + /* If forced to write, and we have no + * data left, we need to write the last + * sparse block explicitly. + */ + if (force && cnt == 0) { + pending -= last_sp; + assert(outp == out.db); + memset(outp, 0, cnt); + } if (lseek(out.fd, pending, SEEK_CUR) == -1) err(2, "%s: seek error creating sparse file", out.name); - if (force) - write(out.fd, outp, 1); - pending = 0; + pending = last_sp = 0; } if (cnt) nw = write(out.fd, outp, cnt); @@ -475,27 +492,29 @@ dd_out(int force) err(1, "%s", out.name); nw = 0; } +
Re: bin/189174: [patch] dd(1): dd conv=sparse bs=64k EINVAL on sparse last block
Synopsis: [patch] dd(1): dd conv=sparse bs=64k EINVAL on sparse last block State-Changed-From-To: open->closed State-Changed-By: thomas State-Changed-When: Wed May 7 19:54:36 UTC 2014 State-Changed-Why: Fixed in head. http://www.freebsd.org/cgi/query-pr.cgi?pr=189174 ___ freebsd-bugs@freebsd.org mailing list http://lists.freebsd.org/mailman/listinfo/freebsd-bugs To unsubscribe, send any mail to "freebsd-bugs-unsubscr...@freebsd.org"
Re: bin/189284: dd(1): may write junk if conv=sparse with obs < ibs
Synopsis: dd(1): may write junk if conv=sparse with obs < ibs State-Changed-From-To: open->closed State-Changed-By: thomas State-Changed-When: Wed May 7 19:55:36 UTC 2014 State-Changed-Why: Fixed in head. http://www.freebsd.org/cgi/query-pr.cgi?pr=189284 ___ freebsd-bugs@freebsd.org mailing list http://lists.freebsd.org/mailman/listinfo/freebsd-bugs To unsubscribe, send any mail to "freebsd-bugs-unsubscr...@freebsd.org"
Re: misc/189317: [chrome] [libffmpeg] SIGBUS in libffmpeg
Hi, NetBSD has already found and fixed this. They added an explicit stack alignment set to chromium and mplayer. i386 doesn't have a 16 byte default stack alignment requirement and it's screwing things up. It's likely worth adding this to chromium, mplayer-* ports, libffmeg and firefox. http://gnats.netbsd.org/47132 Would someone please evaluate this? Thanks, -a ___ freebsd-bugs@freebsd.org mailing list http://lists.freebsd.org/mailman/listinfo/freebsd-bugs To unsubscribe, send any mail to "freebsd-bugs-unsubscr...@freebsd.org"