From owner-freebsd-ports Tue Sep 29 17:41:52 1998 Return-Path: Received: (from majordom@localhost) by hub.freebsd.org (8.8.8/8.8.8) id RAA16878 for freebsd-ports-outgoing; Tue, 29 Sep 1998 17:41:52 -0700 (PDT) (envelope-from owner-freebsd-ports@FreeBSD.ORG) Received: from tahiti.oss.uswest.net (tahiti.oss.uswest.net [204.147.85.151]) by hub.freebsd.org (8.8.8/8.8.8) with ESMTP id RAA16826 for ; Tue, 29 Sep 1998 17:41:42 -0700 (PDT) (envelope-from rantapaa@uswest.net) Received: (from rantapaa@localhost) by tahiti.oss.uswest.net (8.8.5/8.6.12) id TAA14314; Tue, 29 Sep 1998 19:41:20 -0500 (CDT) Date: Tue, 29 Sep 1998 19:41:20 -0500 (CDT) From: Erik E Rantapaa To: freebsd-ports@FreeBSD.ORG Subject: some bugs in cpio Message-ID: MIME-Version: 1.0 Content-Type: MULTIPART/MIXED; BOUNDARY="0-781779665-907114549=:10556" Content-ID: Sender: owner-freebsd-ports@FreeBSD.ORG Precedence: bulk X-Loop: FreeBSD.org This message is in MIME format. The first part should be readable text, while the remaining parts are likely unreadable without MIME-aware tools. Send mail to mime@docserver.cac.washington.edu for more info. --0-781779665-907114549=:10556 Content-Type: TEXT/PLAIN; CHARSET=US-ASCII Content-ID: Hello Freebsd-ers... I fixed a few bugs in cpio-2.4.2 and have just sent a bug report to the GNU folks. I also thought I would report them here since FreeBSD uses GNU cpio as part of its base system. If there is a better way to report these kind of things, please let me know and I'll note it for future reference. Cheers, Erik Rantapaa rantapaa@uswest.net ---------- Forwarded message ---------- Date: Tue, 29 Sep 1998 19:15:49 -0500 (CDT) From: Erik E Rantapaa To: bug-gnu-utils@prep.ai.mit.edu Subject: some bugs in cpio Hello, Here are some bugs I found in cpio-2.4.2. I have tested the fix for bug #1 and it seems to work. I have not run into bug #2 yet, so the fix I have for that is more speculative, although I'm pretty sure it is the right thing to do. A patch file is included. -- Erik Rantapaa rantapaa@uswest.net Bug #1: cpio writes corrupted archives when archiving growing files Description: If a file that cpio is archiving grows in size during the archiving process, the growth will appear as part of the next file placed into the archive. This results in a corrupted archive. The problem is that that cpio is not resetting its input buffer when it opens a new file. Fix: Reset the input buffer by setting input_size = 0 in a few places -- specifically whenever a new file is designated to be the one that uses the input buffer. Bug #2: cpio may not handle file shrinkage properly Description: >From the code it appears that cpio may not handle files which shrink during the archiving process in the most desirable way. The code attempts to pad the missing content with nulls. However, those nulls are written to the file descriptor directly with write(), whereas normally file data is written through a buffer. This could result in the nulls being placed somewhere in the middle of the file instead of at the end where it would make more sense for them to be. Fix: Call disk_empty_output_buffer() / tape_empty_output_buffer() (whichever is appropriate) before calling write_nuls_to_file(). --0-781779665-907114549=:10556 Content-Type: TEXT/PLAIN; CHARSET=US-ASCII; NAME=cpio-patches Content-Transfer-Encoding: BASE64 Content-ID: Content-Description: patches to cpio-2.4.2 ZGlmZiAtdSBjcGlvLTIuNC4yL2NvcHlvdXQuYyBjcGlvLTIuNC4yLWZpeGVk L2NvcHlvdXQuYw0KLS0tIGNwaW8tMi40LjIvY29weW91dC5jCVdlZCBKYW4g MTAgMTA6MTA6NDUgMTk5Ng0KKysrIGNwaW8tMi40LjItZml4ZWQvY29weW91 dC5jCVR1ZSBTZXAgMjkgMTg6MzU6NTAgMTk5OA0KQEAgLTM2OSw2ICszNjks NyBAQA0KIAkJICAgIH0NCiAJCX0NCiAjZW5kaWYNCisJICAgICAgaW5wdXRf c2l6ZSA9IDA7DQogCSAgICAgIGluX2ZpbGVfZGVzID0gb3BlbiAoaW5wdXRf bmFtZS5kc19zdHJpbmcsDQogCQkJCSAgT19SRE9OTFkgfCBPX0JJTkFSWSwg MCk7DQogCSAgICAgIGlmIChpbl9maWxlX2RlcyA8IDApDQpAQCAtNzcwLDYg Kzc3MSw3IEBADQogICBmaWxlX2hkciA9ICpoZWFkZXI7DQogDQogDQorICBp bnB1dF9zaXplID0gMDsNCiAgIGluX2ZpbGVfZGVzID0gb3BlbiAoaGVhZGVy LT5jX25hbWUsDQogCQkgICAgICBPX1JET05MWSB8IE9fQklOQVJZLCAwKTsN CiAgIGlmIChpbl9maWxlX2RlcyA8IDApDQpPbmx5IGluIGNwaW8tMi40LjIt Zml4ZWQ6IGNvcHlvdXQubw0KZGlmZiAtdSBjcGlvLTIuNC4yL2NvcHlwYXNz LmMgY3Bpby0yLjQuMi1maXhlZC9jb3B5cGFzcy5jDQotLS0gY3Bpby0yLjQu Mi9jb3B5cGFzcy5jCU1vbiBKYW4gIDggMTU6NTk6MDUgMTk5Ng0KKysrIGNw aW8tMi40LjItZml4ZWQvY29weXBhc3MuYwlUdWUgU2VwIDI5IDE4OjM4OjQ4 IDE5OTgNCkBAIC0xNDcsNiArMTQ3LDcgQEANCiAJICAvKiBJZiB0aGUgZmls ZSB3YXMgbm90IGxpbmtlZCwgY29weSBjb250ZW50cyBvZiBmaWxlLiAgKi8N CiAJICBpZiAobGlua19yZXMgPCAwKQ0KIAkgICAgew0KKwkgICAgICBpbnB1 dF9zaXplID0gMDsNCiAJICAgICAgaW5fZmlsZV9kZXMgPSBvcGVuIChpbnB1 dF9uYW1lLmRzX3N0cmluZywNCiAJCQkJICBPX1JET05MWSB8IE9fQklOQVJZ LCAwKTsNCiAJICAgICAgaWYgKGluX2ZpbGVfZGVzIDwgMCkNCmRpZmYgLXUg Y3Bpby0yLjQuMi91dGlsLmMgY3Bpby0yLjQuMi1maXhlZC91dGlsLmMNCi0t LSBjcGlvLTIuNC4yL3V0aWwuYwlUdWUgSmFuIDE2IDE1OjQwOjE0IDE5OTYN CisrKyBjcGlvLTIuNC4yLWZpeGVkL3V0aWwuYwlUdWUgU2VwIDI5IDE5OjAx OjAyIDE5OTgNCkBAIC00OTcsNiArNDk3LDcgQEANCiAJICAgIGVsc2UNCiAJ ICAgICAgZXJyb3IgKDAsIDAsICJSZWFkIGVycm9yIGF0IGJ5dGUgJWxkIGlu IGZpbGUgJXMsIHBhZGRpbmcgd2l0aCB6ZXJvcyIsDQogCQkJb3JpZ2luYWxf bnVtX2J5dGVzIC0gbnVtX2J5dGVzLCBmaWxlbmFtZSk7DQorCSAgICB0YXBl X2VtcHR5X291dHB1dF9idWZmZXIob3V0X2Rlcyk7DQogCSAgICB3cml0ZV9u dWxzX3RvX2ZpbGUgKG51bV9ieXRlcywgb3V0X2Rlcyk7DQogCSAgICBicmVh azsNCiAJICB9DQpAQCAtNTQ0LDYgKzU0NSw3IEBADQogCSAgICBlbHNlDQog CSAgICAgIGVycm9yICgwLCAwLCAiUmVhZCBlcnJvciBhdCBieXRlICVsZCBp biBmaWxlICVzLCBwYWRkaW5nIHdpdGggemVyb3MiLA0KIAkJCW9yaWdpbmFs X251bV9ieXRlcyAtIG51bV9ieXRlcywgZmlsZW5hbWUpOw0KKwkgICAgZGlz a19lbXB0eV9vdXRwdXRfYnVmZmVyKG91dF9kZXMpOw0KIAkgICAgd3JpdGVf bnVsc190b19maWxlIChudW1fYnl0ZXMsIG91dF9kZXMpOw0KIAkgICAgYnJl YWs7DQogCSAgfQ0K --0-781779665-907114549=:10556-- To Unsubscribe: send mail to majordomo@FreeBSD.org with "unsubscribe freebsd-ports" in the body of the message