From owner-freebsd-bugs@FreeBSD.ORG Tue Mar 30 11:50:06 2010 Return-Path: Delivered-To: freebsd-bugs@hub.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:4f8:fff6::34]) by hub.freebsd.org (Postfix) with ESMTP id 66E37106566B for ; Tue, 30 Mar 2010 11:50:06 +0000 (UTC) (envelope-from gnats@FreeBSD.org) Received: from freefall.freebsd.org (freefall.freebsd.org [IPv6:2001:4f8:fff6::28]) by mx1.freebsd.org (Postfix) with ESMTP id 5524B8FC17 for ; Tue, 30 Mar 2010 11:50:06 +0000 (UTC) Received: from freefall.freebsd.org (localhost [127.0.0.1]) by freefall.freebsd.org (8.14.4/8.14.4) with ESMTP id o2UBo6cc073858 for ; Tue, 30 Mar 2010 11:50:06 GMT (envelope-from gnats@freefall.freebsd.org) Received: (from gnats@localhost) by freefall.freebsd.org (8.14.4/8.14.4/Submit) id o2UBo6Er073857; Tue, 30 Mar 2010 11:50:06 GMT (envelope-from gnats) Date: Tue, 30 Mar 2010 11:50:06 GMT Message-Id: <201003301150.o2UBo6Er073857@freefall.freebsd.org> To: freebsd-bugs@FreeBSD.org From: Garrett Cooper Cc: Subject: Re: bin/144644: [patch] Fix *alloc cornercases with config(1) X-BeenThere: freebsd-bugs@freebsd.org X-Mailman-Version: 2.1.5 Precedence: list Reply-To: Garrett Cooper List-Id: Bug reports List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Tue, 30 Mar 2010 11:50:06 -0000 The following reply was made to PR bin/144644; it has been noted by GNATS. From: Garrett Cooper To: Ruslan Ermilov Cc: bug-followup@freebsd.org Subject: Re: bin/144644: [patch] Fix *alloc cornercases with config(1) Date: Tue, 30 Mar 2010 04:46:28 -0700 --0016363105b72177dc0483032ec9 Content-Type: text/plain; charset=ISO-8859-1 Content-Transfer-Encoding: quoted-printable On Tue, Mar 30, 2010 at 3:34 AM, Ruslan Ermilov wrote: > On Sun, Mar 21, 2010 at 04:58:18AM -0700, Garrett Cooper wrote: >> On Sat, Mar 13, 2010 at 12:36 AM, Garrett Cooper w= rote: >> > On Fri, Mar 12, 2010 at 11:28 PM, Garrett Cooper = wrote: >> >> =A0 =A0The attached patch addresses the non-style(9) conformity with = my >> >> previous patch as pointed out by several folks on current@. >> > >> > Sorry -- missed a spot... >> >> =A0 =A0 The following patch incorporates a logical change from errx(3) t= o >> err(3) made by ru@ in an informal review. I also picked up a few other >> logical messages that were originally errx(EXIT_ERR, ...) and >> converted them to err(EXIT_ERR, ...) in a similar fashion. > > Part of the changes are invalid (shouldn't have been converted from > errx() to err()). > > : Index: main.c > : =3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D= =3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D= =3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D > : --- main.c =A0 =A0(revision 205872) > : +++ main.c =A0 =A0(working copy) > : @@ -120,7 +120,7 @@ > : =A0 =A0 =A0 =A0 =A0 =A0 =A0 =A0 =A0 =A0 =A0 if (*destdir =3D=3D '\0') > : =A0 =A0 =A0 =A0 =A0 =A0 =A0 =A0 =A0 =A0 =A0 =A0 =A0 =A0 =A0 strlcpy(des= tdir, optarg, sizeof(destdir)); > : =A0 =A0 =A0 =A0 =A0 =A0 =A0 =A0 =A0 =A0 =A0 else > : - =A0 =A0 =A0 =A0 =A0 =A0 =A0 =A0 =A0 =A0 =A0 =A0 =A0 =A0 errx(2, "dire= ctory already set"); > : + =A0 =A0 =A0 =A0 =A0 =A0 =A0 =A0 =A0 =A0 =A0 =A0 =A0 =A0 err(EXIT_FAIL= URE, "directory already set"); > : =A0 =A0 =A0 =A0 =A0 =A0 =A0 =A0 =A0 =A0 =A0 break; > : =A0 =A0 =A0 =A0 =A0 =A0 =A0 case 'g': > : =A0 =A0 =A0 =A0 =A0 =A0 =A0 =A0 =A0 =A0 =A0 debugging++; > : @@ -175,7 +175,7 @@ > : =A0 =A0 =A0 =A0 =A0 =A0 =A0 if (mkdir(p, 0777)) > : =A0 =A0 =A0 =A0 =A0 =A0 =A0 =A0 =A0 =A0 =A0 err(2, "%s", p); > : =A0 =A0 =A0 } else if (!S_ISDIR(buf.st_mode)) > : - =A0 =A0 =A0 =A0 =A0 =A0 errx(2, "%s isn't a directory", p); > : + =A0 =A0 =A0 =A0 =A0 =A0 err(EXIT_FAILURE, "%s isn't a directory", p); > : > : =A0 =A0 =A0 SLIST_INIT(&cputype); > : =A0 =A0 =A0 SLIST_INIT(&mkopt); > : @@ -519,7 +519,7 @@ > : =A0 =A0 =A0 =A0*/ > : =A0 =A0 =A0 p =3D strstr(kernconfstr, KERNCONFTAG); > : =A0 =A0 =A0 if (p =3D=3D NULL) > : - =A0 =A0 =A0 =A0 =A0 =A0 errx(EXIT_FAILURE, "Something went terribly w= rong!"); > : + =A0 =A0 =A0 =A0 =A0 =A0 err(EXIT_FAILURE, "Something went terribly wr= ong!"); > : =A0 =A0 =A0 *p =3D '\0'; > : =A0 =A0 =A0 fprintf(fo, "%s", kernconfstr); > : =A0 =A0 =A0 fprintf(fo, "%s", sbuf_data(sb)); > : @@ -671,19 +673,19 @@ > : [...] > : =A0 =A0 =A0 if (S_ISDIR(st.st_mode)) > : - =A0 =A0 =A0 =A0 =A0 =A0 errx(EXIT_FAILURE, "'%s' is a directory", fil= e); > : + =A0 =A0 =A0 =A0 =A0 =A0 err(EXIT_FAILURE, "'%s' is a directory", file= ); > : =A0 =A0 =A0 fp =3D fdopen(r, "r"); > : [...] > : =A0 =A0 =A0 pp =3D popen(cmd, "r"); > : =A0 =A0 =A0 if (pp =3D=3D NULL) > : - =A0 =A0 =A0 =A0 =A0 =A0 errx(EXIT_FAILURE, "popen() failed"); > : + =A0 =A0 =A0 =A0 =A0 =A0 err(EXIT_FAILURE, "popen() failed"); > > This is questionable; see the popen(3) manpage for details, > section ERRORS. > > : Index: lang.l > : =3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D= =3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D= =3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D > : --- lang.l =A0 =A0(revision 205872) > : +++ lang.l =A0 =A0(working copy) > : @@ -31,6 +31,7 @@ > : =A0 * $FreeBSD$ > : =A0 */ > : > : +#include > > Misplaced include. > > : =A0#include > : =A0#include > : =A0#include Hi Ruslan! Thanks for the review! This should resolve all of the issues you spotted before, as well as fixes a typo in a comment near one of the changes that I spotted before. Cheers, -Garrett --0016363105b72177dc0483032ec9 Content-Type: text/plain; charset=US-ASCII; name="config-failure-corner-cases.diff.txt" Content-Disposition: attachment; filename="config-failure-corner-cases.diff.txt" Content-Transfer-Encoding: base64 X-Attachment-Id: f_g7en65jh0 SW5kZXg6IG1rb3B0aW9ucy5jCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIG1rb3B0aW9ucy5jCShyZXZpc2lvbiAy MDU4NzEpCisrKyBta29wdGlvbnMuYwkod29ya2luZyBjb3B5KQpAQCAtNzAsNiArNzAsOCBAQAog CS8qIEZha2UgdGhlIGNwdSB0eXBlcyBhcyBvcHRpb25zLiAqLwogCVNMSVNUX0ZPUkVBQ0goY3As ICZjcHV0eXBlLCBjcHVfbmV4dCkgewogCQlvcCA9IChzdHJ1Y3Qgb3B0ICopY2FsbG9jKDEsIHNp emVvZigqb3ApKTsKKwkJaWYgKG9wID09IE5VTEwpCisJCQllcnIoRVhJVF9GQUlMVVJFLCAiY2Fs bG9jIik7CiAJCW9wLT5vcF9uYW1lID0gbnMoY3AtPmNwdV9uYW1lKTsKIAkJU0xJU1RfSU5TRVJU X0hFQUQoJm9wdCwgb3AsIG9wX25leHQpOwogCX0JCkBAIC04NCw2ICs4Niw4IEBACiAKIAkvKiBG YWtlIE1BWFVTRVJTIGFzIGFuIG9wdGlvbi4gKi8KIAlvcCA9IChzdHJ1Y3Qgb3B0ICopY2FsbG9j KDEsIHNpemVvZigqb3ApKTsKKwlpZiAob3AgPT0gTlVMTCkKKwkJZXJyKEVYSVRfRkFJTFVSRSwg ImNhbGxvYyIpOwogCW9wLT5vcF9uYW1lID0gbnMoIk1BWFVTRVJTIik7CiAJc25wcmludGYoYnVm LCBzaXplb2YoYnVmKSwgIiVkIiwgbWF4dXNlcnMpOwogCW9wLT5vcF92YWx1ZSA9IG5zKGJ1Zik7 CkBAIC0xOTksNiArMjAzLDggQEAKIAkJCXRpZHkrKzsKIAkJfSBlbHNlIHsKIAkJCW9wID0gKHN0 cnVjdCBvcHQgKikgY2FsbG9jKDEsIHNpemVvZiAqb3ApOworCQkJaWYgKG9wID09IE5VTEwpCisJ CQkJZXJyKEVYSVRfRkFJTFVSRSwgImNhbGxvYyIpOwogCQkJb3AtPm9wX25hbWUgPSBpbnc7CiAJ CQlvcC0+b3BfdmFsdWUgPSBpbnZhbHVlOwogCQkJU0xJU1RfSU5TRVJUX0hFQUQoJm9wX2hlYWQs IG9wLCBvcF9uZXh0KTsKQEAgLTIyNSw2ICsyMzEsOCBAQAogCWlmICh2YWx1ZSAmJiAhc2Vlbikg ewogCQkvKiBOZXcgb3B0aW9uIGFwcGVhcnMgKi8KIAkJb3AgPSAoc3RydWN0IG9wdCAqKSBjYWxs b2MoMSwgc2l6ZW9mICpvcCk7CisJCWlmIChvcCA9PSBOVUxMKQorCQkJZXJyKEVYSVRfRkFJTFVS RSwgImNhbGxvYyIpOwogCQlvcC0+b3BfbmFtZSA9IG5zKG5hbWUpOwogCQlvcC0+b3BfdmFsdWUg PSB2YWx1ZSA/IG5zKHZhbHVlKSA6IE5VTEw7CiAJCVNMSVNUX0lOU0VSVF9IRUFEKCZvcF9oZWFk LCBvcCwgb3BfbmV4dCk7CkBAIC0zMzYsNiArMzQ0LDggQEAKIAl9CiAJCiAJcG8gPSAoc3RydWN0 IG9wdF9saXN0ICopIGNhbGxvYygxLCBzaXplb2YgKnBvKTsKKwlpZiAocG8gPT0gTlVMTCkKKwkJ ZXJyKEVYSVRfRkFJTFVSRSwgImNhbGxvYyIpOwogCXBvLT5vX25hbWUgPSB0aGlzOwogCXBvLT5v X2ZpbGUgPSB2YWw7CiAJU0xJU1RfSU5TRVJUX0hFQUQoJm90YWIsIHBvLCBvX25leHQpOwpJbmRl eDogbWFpbi5jCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT0KLS0tIG1haW4uYwkocmV2aXNpb24gMjA1ODcxKQorKysgbWFp bi5jCSh3b3JraW5nIGNvcHkpCkBAIC0xMjAsNyArMTIwLDcgQEAKIAkJCWlmICgqZGVzdGRpciA9 PSAnXDAnKQogCQkJCXN0cmxjcHkoZGVzdGRpciwgb3B0YXJnLCBzaXplb2YoZGVzdGRpcikpOwog CQkJZWxzZQotCQkJCWVycngoMiwgImRpcmVjdG9yeSBhbHJlYWR5IHNldCIpOworCQkJCWVycngo RVhJVF9GQUlMVVJFLCAiZGlyZWN0b3J5IGFscmVhZHkgc2V0Iik7CiAJCQlicmVhazsKIAkJY2Fz ZSAnZyc6CiAJCQlkZWJ1Z2dpbmcrKzsKQEAgLTE3NSw3ICsxNzUsNyBAQAogCQlpZiAobWtkaXIo cCwgMDc3NykpCiAJCQllcnIoMiwgIiVzIiwgcCk7CiAJfSBlbHNlIGlmICghU19JU0RJUihidWYu c3RfbW9kZSkpCi0JCWVycngoMiwgIiVzIGlzbid0IGEgZGlyZWN0b3J5IiwgcCk7CisJCWVycngo RVhJVF9GQUlMVVJFLCAiJXMgaXNuJ3QgYSBkaXJlY3RvcnkiLCBwKTsKIAogCVNMSVNUX0lOSVQo JmNwdXR5cGUpOwogCVNMSVNUX0lOSVQoJm1rb3B0KTsKQEAgLTI1Niw3ICsyNTYsNyBAQAogCWlu dCBpOwogCiAJaWYgKHJlYWxwYXRoKCIuLi8uLiIsIHNyY2RpcikgPT0gTlVMTCkKLQkJZXJyeCgy LCAiVW5hYmxlIHRvIGZpbmQgcm9vdCBvZiBzb3VyY2UgdHJlZSIpOworCQllcnIoRVhJVF9GQUlM VVJFLCAiVW5hYmxlIHRvIGZpbmQgcm9vdCBvZiBzb3VyY2UgdHJlZSIpOwogCWlmICgocHdkID0g Z2V0ZW52KCJQV0QiKSkgIT0gTlVMTCAmJiAqcHdkID09ICcvJyAmJgogCSAgICAocHdkID0gc3Ry ZHVwKHB3ZCkpICE9IE5VTEwpIHsKIAkJLyogUmVtb3ZlIHRoZSBsYXN0IHR3byBwYXRoIGNvbXBv bmVudHMuICovCkBAIC01MTMsNyArNTEzLDcgQEAKIAl9CiAJc2J1Zl9maW5pc2goc2IpOwogCS8q IAotCSAqIFdlIHByaW50IGZpcnN0IHBhcnQgb2YgdGhlIHRhbXBsYXRlLCByZXBsYWNlIG91ciB0 YWcgd2l0aAorCSAqIFdlIHByaW50IGZpcnN0IHBhcnQgb2YgdGhlIHRlbXBsYXRlLCByZXBsYWNl IG91ciB0YWcgd2l0aAogCSAqIGNvbmZpZ3VyYXRpb24gZmlsZXMgY29udGVudCBhbmQgbGF0ZXIg Y29udGludWUgd3JpdGluZyBvdXIKIAkgKiB0ZW1wbGF0ZS4KIAkgKi8KQEAgLTY1MCw2ICs2NTAs OCBAQAogCQl9CiAJfQogCWhsID0gY2FsbG9jKDEsIHNpemVvZigqaGwpKTsKKwlpZiAoaGwgPT0g TlVMTCkKKwkJZXJyKEVYSVRfRkFJTFVSRSwgImNhbGxvYyIpOwogCWhsLT5oX25hbWUgPSBzOwog CWhsLT5oX25leHQgPSBodGFiOwogCWh0YWIgPSBobDsKQEAgLTY3MSwxOSArNjczLDE5IEBACiAK IAlyID0gb3BlbihmaWxlLCBPX1JET05MWSk7CiAJaWYgKHIgPT0gLTEpCi0JCWVycngoRVhJVF9G QUlMVVJFLCAiQ291bGRuJ3Qgb3BlbiBmaWxlICclcyciLCBmaWxlKTsKKwkJZXJyKEVYSVRfRkFJ TFVSRSwgIkNvdWxkbid0IG9wZW4gZmlsZSAnJXMnIiwgZmlsZSk7CiAJZXJyb3IgPSBmc3RhdChy LCAmc3QpOwogCWlmIChlcnJvciA9PSAtMSkKLQkJZXJyeChFWElUX0ZBSUxVUkUsICJmc3RhdCgp IGZhaWxlZCIpOworCQllcnIoRVhJVF9GQUlMVVJFLCAiZnN0YXQoKSBmYWlsZWQiKTsKIAlpZiAo U19JU0RJUihzdC5zdF9tb2RlKSkKIAkJZXJyeChFWElUX0ZBSUxVUkUsICInJXMnIGlzIGEgZGly ZWN0b3J5IiwgZmlsZSk7CiAJZnAgPSBmZG9wZW4ociwgInIiKTsKIAlpZiAoZnAgPT0gTlVMTCkK LQkJZXJyeChFWElUX0ZBSUxVUkUsICJmZG9wZW4oKSBmYWlsZWQiKTsKKwkJZXJyKEVYSVRfRkFJ TFVSRSwgImZkb3BlbigpIGZhaWxlZCIpOwogCW9zeiA9IDEwMjQ7CiAJbyA9IGNhbGxvYygxLCBv c3opOwogCWlmIChvID09IE5VTEwpCi0JCWVycngoRVhJVF9GQUlMVVJFLCAiQ291bGRuJ3QgYWxs b2NhdGUgbWVtb3J5Iik7CisJCWVycihFWElUX0ZBSUxVUkUsICJDb3VsZG4ndCBhbGxvY2F0ZSBt ZW1vcnkiKTsKIAkvKiBFTEYgbm90ZSBzZWN0aW9uIGhlYWRlci4gKi8KIAlhc3ByaW50ZigmY21k LCAiL3Vzci9iaW4vZWxmZHVtcCAtYyAlcyB8IGdyZXAgLUEgNSBrZXJuX2NvbmYiCiAJICAgICJ8 IHRhaWwgLTIgfCBjdXQgLWQgJyAnIC1mIDIgfCBwYXN0ZSAtIC0gLSIsIGZpbGUpOwpAQCAtNzAz LDcgKzcwNSw3IEBACiAJCSAgICAiSU5DTFVERV9DT05GSUdfRklMRSIsIGZpbGUpOwogCXIgPSBm c2VlayhmcCwgb2ZmLCBTRUVLX0NVUik7CiAJaWYgKHIgIT0gMCkKLQkJZXJyeChFWElUX0ZBSUxV UkUsICJmc2VlaygpIGZhaWxlZCIpOworCQllcnIoRVhJVF9GQUlMVVJFLCAiZnNlZWsoKSBmYWls ZWQiKTsKIAlmb3IgKGkgPSAwOyBpIDwgc2l6ZSAtIDE7IGkrKykgewogCQlyID0gZmdldGMoZnAp OwogCQlpZiAociA9PSBFT0YpCkluZGV4OiBta21ha2VmaWxlLmMKPT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gbWtt YWtlZmlsZS5jCShyZXZpc2lvbiAyMDU4NzEpCisrKyBta21ha2VmaWxlLmMJKHdvcmtpbmcgY29w eSkKQEAgLTk4LDYgKzk4LDggQEAKIAlzdHJ1Y3QgZmlsZV9saXN0ICpmcDsKIAogCWZwID0gKHN0 cnVjdCBmaWxlX2xpc3QgKikgY2FsbG9jKDEsIHNpemVvZiAqZnApOworCWlmIChmcCA9PSBOVUxM KQorCQllcnIoRVhJVF9GQUlMVVJFLCAiY2FsbG9jIik7CiAJU1RBSUxRX0lOU0VSVF9UQUlMKCZm dGFiLCBmcCwgZl9uZXh0KTsKIAlyZXR1cm4gKGZwKTsKIH0KSW5kZXg6IGxhbmcubAo9PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09Ci0tLSBsYW5nLmwJKHJldmlzaW9uIDIwNTg3MSkKKysrIGxhbmcubAkod29ya2luZyBjb3B5 KQpAQCAtMzMsNiArMzMsNyBAQAogCiAjaW5jbHVkZSA8YXNzZXJ0Lmg+CiAjaW5jbHVkZSA8Y3R5 cGUuaD4KKyNpbmNsdWRlIDxlcnIuaD4KICNpbmNsdWRlIDxzdHJpbmcuaD4KICNpbmNsdWRlICJ5 LnRhYi5oIgogI2luY2x1ZGUgImNvbmZpZy5oIgpAQCAtMjIwLDYgKzIyMSw4IEBACiAJc3RydWN0 IGNmZ2ZpbGUgKmNmOwogCiAJY2YgPSBjYWxsb2MoMSwgc2l6ZW9mKCpjZikpOworCWlmIChjZiA9 PSBOVUxMKQorCQllcnIoRVhJVF9GQUlMVVJFLCAiY2FsbG9jIik7CiAJYXNzZXJ0KGNmICE9IE5V TEwpOwogCWFzcHJpbnRmKCZjZi0+Y2ZnX3BhdGgsICIlcyIsIGZuYW1lKTsKIAlTVEFJTFFfSU5T RVJUX1RBSUwoJmNmZ2ZpbGVzLCBjZiwgY2ZnX25leHQpOwpJbmRleDogY29uZmlnLnkKPT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PQotLS0gY29uZmlnLnkJKHJldmlzaW9uIDIwNTg3MSkKKysrIGNvbmZpZy55CSh3b3JraW5n IGNvcHkpCkBAIC0xNjYsNiArMTY2LDggQEAKIAlDUFUgU2F2ZV9pZCB7CiAJCXN0cnVjdCBjcHV0 eXBlICpjcCA9CiAJCSAgICAoc3RydWN0IGNwdXR5cGUgKiljYWxsb2MoMSwgc2l6ZW9mIChzdHJ1 Y3QgY3B1dHlwZSkpOworCQlpZiAoY3AgPT0gTlVMTCkKKwkJCWVycihFWElUX0ZBSUxVUkUsICJj YWxsb2MiKTsKIAkJY3AtPmNwdV9uYW1lID0gJDI7CiAJCVNMSVNUX0lOU0VSVF9IRUFEKCZjcHV0 eXBlLCBjcCwgY3B1X25leHQpOwogCSAgICAgIH0gfApAQCAtMTk3LDYgKzE5OSw4IEBACiAJCXN0 cnVjdCBoaW50ICpoaW50OwogCiAJCWhpbnQgPSAoc3RydWN0IGhpbnQgKiljYWxsb2MoMSwgc2l6 ZW9mIChzdHJ1Y3QgaGludCkpOworCQlpZiAoaGludCA9PSBOVUxMKQorCQkJZXJyKEVYSVRfRkFJ TFVSRSwgImNhbGxvYyIpOwkKIAkJaGludC0+aGludF9uYW1lID0gJDI7CiAJCVNUQUlMUV9JTlNF UlRfVEFJTCgmaGludHMsIGhpbnQsIGhpbnRfbmV4dCk7CiAJCWhpbnRtb2RlID0gMTsKQEAgLTMz MSw2ICszMzUsOCBAQAogCXN0cnVjdCBmaWxlc19uYW1lICpubDsKIAkKIAlubCA9IChzdHJ1Y3Qg ZmlsZXNfbmFtZSAqKSBjYWxsb2MoMSwgc2l6ZW9mICpubCk7CisJaWYgKG5sID09IE5VTEwpCisJ CWVycihFWElUX0ZBSUxVUkUsICJjYWxsb2MiKTsKIAlubC0+Zl9uYW1lID0gbmFtZTsKIAlTVEFJ TFFfSU5TRVJUX1RBSUwoJmZudGFiLCBubCwgZl9uZXh0KTsKIH0KQEAgLTM2NCw2ICszNzAsOCBA QAogCX0KIAogCW5wID0gKHN0cnVjdCBkZXZpY2UgKikgY2FsbG9jKDEsIHNpemVvZiAqbnApOwor CWlmIChucCA9PSBOVUxMKQorCQllcnIoRVhJVF9GQUlMVVJFLCAiY2FsbG9jIik7CiAJbnAtPmRf bmFtZSA9IG5hbWU7CiAJU1RBSUxRX0lOU0VSVF9UQUlMKCZkdGFiLCBucCwgZF9uZXh0KTsKIH0K QEAgLTQyMiw2ICs0MzAsOCBAQAogCX0KIAogCW9wID0gKHN0cnVjdCBvcHQgKiljYWxsb2MoMSwg c2l6ZW9mIChzdHJ1Y3Qgb3B0KSk7CisJaWYgKG9wID09IE5VTEwpCisJCWVycihFWElUX0ZBSUxV UkUsICJjYWxsb2MiKTsKIAlvcC0+b3BfbmFtZSA9IG5hbWU7CiAJb3AtPm9wX293bmZpbGUgPSAw OwogCW9wLT5vcF92YWx1ZSA9IHZhbHVlOwo= --0016363105b72177dc0483032ec9--