Date: Thu, 7 Jul 2011 11:33:53 +0200 From: Robert Millan <rmh@debian.org> To: freebsd-hackers@freebsd.org, Ed Maste <emaste@freebsd.org> Cc: debian-hurd@lists.debian.org Subject: [PATCH] avoid assuming MAXPATHLEN in config(8) Message-ID: <CAOfDtXNreaFYKvyR_C15dk9mOqU30_Z4gHxQPkPH5ntY7rRtzA@mail.gmail.com>
next in thread | raw e-mail | index | archive | help
--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--
Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?CAOfDtXNreaFYKvyR_C15dk9mOqU30_Z4gHxQPkPH5ntY7rRtzA>