From owner-freebsd-hackers@FreeBSD.ORG Thu Jul 7 09:33:54 2011 Return-Path: Delivered-To: freebsd-hackers@freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:4f8:fff6::34]) by hub.freebsd.org (Postfix) with ESMTP id C0C1D106566B; Thu, 7 Jul 2011 09:33:54 +0000 (UTC) (envelope-from rmh.aybabtu@gmail.com) Received: from mail-pv0-f182.google.com (mail-pv0-f182.google.com [74.125.83.182]) by mx1.freebsd.org (Postfix) with ESMTP id 947F38FC1E; Thu, 7 Jul 2011 09:33:54 +0000 (UTC) Received: by pvg11 with SMTP id 11so384213pvg.13 for ; Thu, 07 Jul 2011 02:33:53 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=gamma; h=mime-version:sender:date:x-google-sender-auth:message-id:subject :from:to:cc:content-type; bh=0o+wQ3PKJm12eiOFUEyfH6JVKJaKdOUUyP1Fkhq9Ms8=; b=U5xvgx9zz1wrXPeiGJfD9YkRzCsPgCfjEC/341i5BunXA/SOXmkAf+QTK12Q8R6z9U VAOQ/K/6FuC6zCMu9EPWAI2dAD/ewTUPCCLjZDPN2L3Wz+Xph9om/aiyjwXk8VIDevfw bq0JLx+vgWAT5ncTGSaxPu/2rG5zhQDVY2Dmk= MIME-Version: 1.0 Received: by 10.68.17.232 with SMTP id r8mr903996pbd.91.1310031233758; Thu, 07 Jul 2011 02:33:53 -0700 (PDT) Sender: rmh.aybabtu@gmail.com Received: by 10.68.57.4 with HTTP; Thu, 7 Jul 2011 02:33:53 -0700 (PDT) Date: Thu, 7 Jul 2011 11:33:53 +0200 X-Google-Sender-Auth: qGnljVqgjmsb_-AggDxNkaj-dTQ Message-ID: From: Robert Millan To: freebsd-hackers@freebsd.org, Ed Maste Content-Type: multipart/mixed; boundary=bcaec520e99355367704a7776a02 Cc: debian-hurd@lists.debian.org Subject: [PATCH] avoid assuming MAXPATHLEN in config(8) X-BeenThere: freebsd-hackers@freebsd.org X-Mailman-Version: 2.1.5 Precedence: list List-Id: Technical Discussions relating to FreeBSD List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Thu, 07 Jul 2011 09:33:54 -0000 --bcaec520e99355367704a7776a02 Content-Type: text/plain; charset=UTF-8 config(8) assumes MAXPATHLEN is defined in a few places, but presence of this macro isn't garanteed (POSIX says that it is only present when a file length limit exists, which may not be the case). This patch fixes a usr.sbin/config compile problem on Debian GNU/Hurd by using dynamic allocation. Doing so also reduces its memory footprint and safeguards against possible error conditions when zero-length pathnames are used. -- Robert Millan --bcaec520e99355367704a7776a02 Content-Type: text/plain; charset=US-ASCII; name="config_maxpathlen.diff" Content-Disposition: attachment; filename="config_maxpathlen.diff" Content-Transfer-Encoding: base64 X-Attachment-Id: f_gptioq3a0 SW5kZXg6IHVzci5zYmluL2NvbmZpZy9ta29wdGlvbnMuYwo9PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSB1c3Iuc2Jp bi9jb25maWcvbWtvcHRpb25zLmMJKHJldmlzaW9uIDIyMzc5MikKKysrIHVzci5zYmluL2NvbmZp Zy9ta29wdGlvbnMuYwkod29ya2luZyBjb3B5KQpAQCAtMjkwLDIyICsyOTAsMjEgQEAKIHN0YXRp YyBjaGFyICoKIHRvb3B0aW9uKGNoYXIgKm5hbWUpCiB7Ci0Jc3RhdGljIGNoYXIgaGJ1ZltNQVhQ QVRITEVOXTsKLQljaGFyIG5idWZbTUFYUEFUSExFTl07CisJY2hhciAqbmJ1ZjsKIAlzdHJ1Y3Qg b3B0X2xpc3QgKnBvOwogCiAJLyogImNhbm5vdCBoYXBwZW4iPyAgdGhlIG90YWIgbGlzdCBzaG91 bGQgYmUgY29tcGxldGUuLiAqLwotCSh2b2lkKXN0cmxjcHkobmJ1ZiwgIm9wdGlvbnMuaCIsIHNp emVvZihuYnVmKSk7CisJbmJ1ZiA9IHN0cmR1cCgib3B0aW9ucy5oIik7CiAKIAlTTElTVF9GT1JF QUNIKHBvLCAmb3RhYiwgb19uZXh0KSB7CiAJCWlmIChlcShwby0+b19uYW1lLCBuYW1lKSkgewot CQkJc3RybGNweShuYnVmLCBwby0+b19maWxlLCBzaXplb2YobmJ1ZikpOworCQkJZnJlZShuYnVm KTsKKwkJCW5idWYgPSBzdHJkdXAocG8tPm9fZmlsZSk7CiAJCQlicmVhazsKIAkJfQogCX0KIAot CSh2b2lkKXN0cmxjcHkoaGJ1ZiwgcGF0aChuYnVmKSwgc2l6ZW9mKGhidWYpKTsKLQlyZXR1cm4g KGhidWYpOworCXJldHVybiAobmJ1Zik7CiB9CiAKIAkKQEAgLTM2Myw3ICszNjIsNyBAQAogewog CUZJTEUgKmZwOwogCWNoYXIgKndkLCAqdGhpcywgKnZhbDsKLQljaGFyIGdlbm9wdFtNQVhQQVRI TEVOXTsKKwljaGFyICpnZW5vcHQgPSBOVUxMOwogCiAJZnAgPSBmb3BlbihmbmFtZSwgInIiKTsK IAlpZiAoZnAgPT0gMCkKQEAgLTM4Nyw3ICszODYsNyBAQAogCQkJCWV4aXQoMSk7CiAJCQl9CiAJ CQljaGFyICpzID0gbnModGhpcyk7Ci0JCQkodm9pZClzbnByaW50ZihnZW5vcHQsIHNpemVvZihn ZW5vcHQpLCAib3B0XyVzLmgiLAorCQkJKHZvaWQpYXNwcmludGYoJmdlbm9wdCwgIm9wdF8lcy5o IiwKIAkJCSAgICBsb3dlcihzKSk7CiAJCQl2YWwgPSBnZW5vcHQ7CiAJCQlmcmVlKHMpOwpAQCAt Mzk5LDYgKzM5OCw3IEBACiAJCQl1cGRhdGVfb3B0aW9uKHRoaXMsIHZhbCwgZmxhZ3MpOwogCX0K IAkodm9pZClmY2xvc2UoZnApOworCWZyZWUoZ2Vub3B0KTsKIAlyZXR1cm4gKDEpOwogfQogCkBA IC00MDgsMTYgKzQwOCwxNyBAQAogc3RhdGljIHZvaWQKIHJlYWRfb3B0aW9ucyh2b2lkKQogewot CWNoYXIgZm5hbWVbTUFYUEFUSExFTl07CisJY2hhciAqZm5hbWUgPSBOVUxMOwogCiAJU0xJU1Rf SU5JVCgmb3RhYik7CiAJcmVhZF9vcHRpb25fZmlsZSgiLi4vLi4vY29uZi9vcHRpb25zIiwgMCk7 Ci0JKHZvaWQpc25wcmludGYoZm5hbWUsIHNpemVvZiBmbmFtZSwgIi4uLy4uL2NvbmYvb3B0aW9u cy4lcyIsCisJKHZvaWQpYXNwcmludGYoJmZuYW1lLCAiLi4vLi4vY29uZi9vcHRpb25zLiVzIiwK IAkgICAgbWFjaGluZW5hbWUpOwogCWlmICghcmVhZF9vcHRpb25fZmlsZShmbmFtZSwgMCkpIHsK LQkJKHZvaWQpc25wcmludGYoZm5hbWUsIHNpemVvZiBmbmFtZSwgIm9wdGlvbnMuJXMiLCBtYWNo aW5lbmFtZSk7CisJCSh2b2lkKWFzcHJpbnRmKCZmbmFtZSwgIm9wdGlvbnMuJXMiLCBtYWNoaW5l bmFtZSk7CiAJCXJlYWRfb3B0aW9uX2ZpbGUoZm5hbWUsIDApOwogCX0KKwlmcmVlKGZuYW1lKTsK IAlyZWFkX29wdGlvbl9maWxlKCIuLi8uLi9jb25mL29wdGlvbnMtY29tcGF0IiwgT0xfQUxJQVMp OwogfQogCkluZGV4OiB1c3Iuc2Jpbi9jb25maWcvbWFpbi5jCj09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIHVzci5z YmluL2NvbmZpZy9tYWluLmMJKHJldmlzaW9uIDIyMzc5MikKKysrIHVzci5zYmluL2NvbmZpZy9t YWluLmMJKHdvcmtpbmcgY29weSkKQEAgLTcxLDggKzcxLDggQEAKICNkZWZpbmUJQ0RJUgkiLi4v Y29tcGlsZS8iCiAKIGNoYXIgKglQUkVGSVg7Ci1jaGFyIAlkZXN0ZGlyW01BWFBBVEhMRU5dOwot Y2hhciAJc3JjZGlyW01BWFBBVEhMRU5dOworY2hhciAqCWRlc3RkaXI7CitjaGFyICoJc3JjZGly OwogCiBpbnQJZGVidWdnaW5nOwogaW50CXByb2ZpbGluZzsKQEAgLTEyMiw4ICsxMjIsOCBAQAog CQkJcHJpbnRtYWNoaW5lID0gMTsKIAkJCWJyZWFrOwogCQljYXNlICdkJzoKLQkJCWlmICgqZGVz dGRpciA9PSAnXDAnKQotCQkJCXN0cmxjcHkoZGVzdGRpciwgb3B0YXJnLCBzaXplb2YoZGVzdGRp cikpOworCQkJaWYgKGRlc3RkaXIgPT0gTlVMTCkKKwkJCQlkZXN0ZGlyID0gc3RyZHVwKG9wdGFy Zyk7CiAJCQllbHNlCiAJCQkJZXJyeChFWElUX0ZBSUxVUkUsICJkaXJlY3RvcnkgYWxyZWFkeSBz ZXQiKTsKIAkJCWJyZWFrOwpAQCAtMTY1LDE0ICsxNjUsMTMgQEAKIAkJCWVycigyLCAiJXMiLCBQ UkVGSVgpOwogCQl5eWZpbGUgPSBQUkVGSVg7CiAJfQotCWlmICgqZGVzdGRpciAhPSAnXDAnKSB7 CisJaWYgKGRlc3RkaXIgIT0gTlVMTCkgewogCQlsZW4gPSBzdHJsZW4oZGVzdGRpcik7CiAJCXdo aWxlIChsZW4gPiAxICYmIGRlc3RkaXJbbGVuIC0gMV0gPT0gJy8nKQogCQkJZGVzdGRpclstLWxl bl0gPSAnXDAnOwogCQlnZXRfc3JjZGlyKCk7CiAJfSBlbHNlIHsKLQkJc3RybGNweShkZXN0ZGly LCBDRElSLCBzaXplb2YoZGVzdGRpcikpOwotCQlzdHJsY2F0KGRlc3RkaXIsIFBSRUZJWCwgc2l6 ZW9mKGRlc3RkaXIpKTsKKwkJKHZvaWQpIGFzcHJpbnRmKCZkZXN0ZGlyLCBDRElSICIlcyIsIFBS RUZJWCk7CiAJfQogCiAJU0xJU1RfSU5JVCgmY3B1dHlwZSk7CkBAIC0yMjksNiArMjI4LDE5IEBA CiAJZXhpdCgwKTsKIH0KIAorI2lmbmRlZiBfX0dMSUJDX18KK3N0YXRpYyBjaGFyICoKK2Nhbm9u aWNhbGl6ZV9maWxlX25hbWUoY29uc3QgY2hhciAqcGF0aG5hbWUpCit7CisJY2hhciAqcmV0ID0g bWFsbG9jKE1BWFBBVEhMRU4pOworCWlmIChyZWFscGF0aChwYXRobmFtZSwgcmV0KSA9PSBOVUxM KSB7CisJCWZyZWUocmV0KTsKKwkJcmV0ID0gTlVMTDsKKwl9CisJcmV0dXJuIHJldDsKK30KKyNl bmRpZgorCiAvKgogICogZ2V0X3NyY2RpcgogICoJZGV0ZXJtaW5lIHRoZSByb290IG9mIHRoZSBr ZXJuZWwgc291cmNlIHRyZWUKQEAgLTI0MSw3ICsyNTMsOSBAQAogCWNoYXIgKnAsICpwd2Q7CiAJ aW50IGk7CiAKLQlpZiAocmVhbHBhdGgoIi4uLy4uIiwgc3JjZGlyKSA9PSBOVUxMKQorCWlmIChz cmNkaXIgIT0gTlVMTCkKKwkJZnJlZShzcmNkaXIpOworCWlmICgoc3JjZGlyID0gY2Fub25pY2Fs aXplX2ZpbGVfbmFtZSgiLi4vLi4iKSkgPT0gTlVMTCkKIAkJZXJyKEVYSVRfRkFJTFVSRSwgIlVu YWJsZSB0byBmaW5kIHJvb3Qgb2Ygc291cmNlIHRyZWUiKTsKIAlpZiAoKHB3ZCA9IGdldGVudigi UFdEIikpICE9IE5VTEwgJiYgKnB3ZCA9PSAnLycgJiYKIAkgICAgKHB3ZCA9IHN0cmR1cChwd2Qp KSAhPSBOVUxMKSB7CkBAIC0yNTQsOSArMjY4LDEyIEBACiAJCQkqcCA9ICdcMCc7CiAJCX0KIAkJ aWYgKHN0YXQocHdkLCAmbGcpICE9IC0xICYmIHN0YXQoc3JjZGlyLCAmcGh5KSAhPSAtMSAmJgot CQkgICAgbGcuc3RfZGV2ID09IHBoeS5zdF9kZXYgJiYgbGcuc3RfaW5vID09IHBoeS5zdF9pbm8p Ci0JCQlzdHJsY3B5KHNyY2RpciwgcHdkLCBNQVhQQVRITEVOKTsKLQkJZnJlZShwd2QpOworCQkg ICAgbGcuc3RfZGV2ID09IHBoeS5zdF9kZXYgJiYgbGcuc3RfaW5vID09IHBoeS5zdF9pbm8pIHsK KwkJCWZyZWUoc3JjZGlyKTsKKwkJCXNyY2RpciA9IHB3ZDsKKwkJfSBlbHNlIHsKKwkJCWZyZWUo cHdkKTsKKwkJfQogCX0KIH0KIApJbmRleDogdXNyLnNiaW4vY29uZmlnL21rbWFrZWZpbGUuYwo9 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09Ci0tLSB1c3Iuc2Jpbi9jb25maWcvbWttYWtlZmlsZS5jCShyZXZpc2lvbiAyMjM3 OTIpCisrKyB1c3Iuc2Jpbi9jb25maWcvbWttYWtlZmlsZS5jCSh3b3JraW5nIGNvcHkpCkBAIC0z MDQsOSArMzA0LDkgQEAKIH0KIAogc3RhdGljIHZvaWQKLXJlYWRfZmlsZShjaGFyICpmbmFtZSkK K3JlYWRfZmlsZShjb25zdCBjaGFyICpmbmFtZSkKIHsKLQljaGFyIGlmbmFtZVtNQVhQQVRITEVO XTsKKwljaGFyICppZm5hbWUgPSBOVUxMOwogCUZJTEUgKmZwOwogCXN0cnVjdCBmaWxlX2xpc3Qg KnRwOwogCXN0cnVjdCBkZXZpY2UgKmRwOwpAQCAtMzQ5LDggKzM0OSw5IEBACiAJCQkgICAgZm5h bWUpOwogCQkJZXhpdCgxKTsKIAkJfQotCQkodm9pZCkgc25wcmludGYoaWZuYW1lLCBzaXplb2Yo aWZuYW1lKSwgIi4uLy4uLyVzIiwgd2QpOworCQkodm9pZCkgYXNwcmludGYoJmlmbmFtZSwgIi4u Ly4uLyVzIiwgd2QpOwogCQlyZWFkX2ZpbGUoaWZuYW1lKTsKKwkJZnJlZShpZm5hbWUpOwogCQl3 aGlsZSAoKCh3ZCA9IGdldF93b3JkKGZwKSkgIT0gKGNoYXIgKilFT0YpICYmIHdkKQogCQkJOwog CQlnb3RvIG5leHQ7CkBAIC01NTksMTQgKzU2MCwxMyBAQAogc3RhdGljIHZvaWQKIHJlYWRfZmls ZXModm9pZCkKIHsKLQljaGFyIGZuYW1lW01BWFBBVEhMRU5dOworCWNoYXIgKmZuYW1lID0gTlVM TDsKIAlzdHJ1Y3QgZmlsZXNfbmFtZSAqbmwsICp0bmw7CiAJCi0JKHZvaWQpIHNucHJpbnRmKGZu YW1lLCBzaXplb2YoZm5hbWUpLCAiLi4vLi4vY29uZi9maWxlcyIpOworCXJlYWRfZmlsZSgiLi4v Li4vY29uZi9maWxlcyIpOworCSh2b2lkKSBhc3ByaW50ZigmZm5hbWUsICIuLi8uLi9jb25mL2Zp bGVzLiVzIiwgbWFjaGluZW5hbWUpOwogCXJlYWRfZmlsZShmbmFtZSk7Ci0JKHZvaWQpIHNucHJp bnRmKGZuYW1lLCBzaXplb2YoZm5hbWUpLAotCQkgICAgICAgCSIuLi8uLi9jb25mL2ZpbGVzLiVz IiwgbWFjaGluZW5hbWUpOwotCXJlYWRfZmlsZShmbmFtZSk7CisJZnJlZShmbmFtZSk7CiAJZm9y IChubCA9IFNUQUlMUV9GSVJTVCgmZm50YWIpOyBubCAhPSBOVUxMOyBubCA9IHRubCkgewogCQly ZWFkX2ZpbGUobmwtPmZfbmFtZSk7CiAJCXRubCA9IFNUQUlMUV9ORVhUKG5sLCBmX25leHQpOwpJ bmRleDogdXNyLnNiaW4vY29uZmlnL2NvbmZpZy5oCj09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIHVzci5zYmluL2Nv bmZpZy9jb25maWcuaAkocmV2aXNpb24gMjIzNzkyKQorKysgdXNyLnNiaW4vY29uZmlnL2NvbmZp Zy5oCSh3b3JraW5nIGNvcHkpCkBAIC0xOTksNyArMTk5LDcgQEAKIGV4dGVybiBpbnQJbWF4dXNl cnM7CiAKIGV4dGVybiBjaGFyICpQUkVGSVg7CQkvKiBDb25maWcgZmlsZSBuYW1lIC0gZm9yIGVy cm9yIG1lc3NhZ2VzICovCi1leHRlcm4gY2hhciBzcmNkaXJbXTsJCS8qIHJvb3Qgb2YgdGhlIGtl cm5lbCBzb3VyY2UgdHJlZSAqLworZXh0ZXJuIGNoYXIgKnNyY2RpcjsJCS8qIHJvb3Qgb2YgdGhl IGtlcm5lbCBzb3VyY2UgdHJlZSAqLwogCiAjZGVmaW5lIGVxKGEsYikJKCFzdHJjbXAoYSxiKSkK ICNkZWZpbmUgbnMocykJc3RyZHVwKHMpCg== --bcaec520e99355367704a7776a02--