From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1753551AbcFFXvM (ORCPT ); Mon, 6 Jun 2016 19:51:12 -0400 Received: from us-smtp-delivery-194.mimecast.com ([216.205.24.194]:60022 "EHLO us-smtp-delivery-194.mimecast.com" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1753315AbcFFXvH (ORCPT ); Mon, 6 Jun 2016 19:51:07 -0400 From: Trond Myklebust To: Rob Landley , "linux-kernel@vger.kernel.org" , Anna Schumaker , "linux-nfs@vger.kernel.org" Subject: Re: [PATCH] Fix NFS option parsing bit-rot. Thread-Topic: [PATCH] Fix NFS option parsing bit-rot. Thread-Index: AQHRwEb9wwsfZtzYeUKM/uT0UkQv9Z/c2G2A Date: Mon, 6 Jun 2016 23:49:10 +0000 Message-ID: References: <57560021.5030708@landley.net> In-Reply-To: <57560021.5030708@landley.net> Accept-Language: en-US Content-Language: en-US X-MS-Has-Attach: X-MS-TNEF-Correlator: x-ms-exchange-messagesentrepresentingtype: 1 x-originating-ip: [68.49.162.121] x-ms-office365-filtering-correlation-id: a5afa908-678d-4b49-89c6-08d38e652855 x-microsoft-exchange-diagnostics: 1;BN3PR11MB0305;5:tZd2M4Fy/fCpSdht5suaEpwYM5v8Dn8mJYoyzxZ44dQXuIpM77Zi7tIGJ9zMMQfJ0zNTun5dqw/MzPItmw+XVefyS4AWNdv3aEiMc48FWHbAGSfKegiuAg8rlEZakIhVwcCJ5LJAKNMiPxgJoWpoWg==;24:SF5i+8OO+b1/PngHxBM1fYfsIztNm9wMviBTJsup6luGY3IcU2jpqElS7/+bFNwx0uCdimuPPaP6iEkU6uzNPAO76BlT30K0xBeaZZx9Sgg=;7:g2NwkL4v7yniv+N5MuTcLPu87hoUGLdXUgbKyL7l8FR3HpcA8xXmHaMC5t4M86hw7V1oWpmlrykkPoxpy/wliTgoU7itvszanth4nmTJDShaJG/Br2BXrwDBojrS28/aNmISGk6U0vorZFuHvXW02em8wT75P5vmGxcJ4qiGH/hDmG6prLqft5J+GNCIRwEjr13Y8+gB0L77tSs0lsXVVg==;20:HVVqlbC/47+Xn3yKCnam6hzATs8FFWmBrjIjXcyW+4hb7P3ufCjkH/sK11suTsRlH0m05gBOOl2w2TvunhDySRwVYnoBZu4pQDWZtNEhVJiq76zX5L3ELpT9+yYnpvsFyp26iY/bjJkt2N8DpSucR9maUNp9hAwPesWP9InfQ8E= x-microsoft-antispam: UriScan:;BCL:0;PCL:0;RULEID:;SRVR:BN3PR11MB0305; x-microsoft-antispam-prvs: x-exchange-antispam-report-test: UriScan:(150554046322364); x-exchange-antispam-report-cfa-test: BCL:0;PCL:0;RULEID:(6040130)(601004)(2401047)(5005006)(8121501046)(10201501046)(3002001)(6041072)(6043046);SRVR:BN3PR11MB0305;BCL:0;PCL:0;RULEID:;SRVR:BN3PR11MB0305; x-forefront-prvs: 096507C068 x-forefront-antispam-report: SFV:NSPM;SFS:(10019020)(6009001)(24454002)(189002)(199003)(92566002)(107886002)(5002640100001)(81166006)(189998001)(33656002)(68736007)(19580395003)(5004730100002)(99286002)(19580405001)(82746002)(8676002)(81156014)(36756003)(66066001)(2501003)(10400500002)(122556002)(97736004)(8936002)(5001770100001)(106116001)(106356001)(11100500001)(77096005)(105586002)(83716003)(86362001)(87936001)(2900100001)(3280700002)(3660700001)(2906002)(15975445007)(2950100001)(5008740100001)(6116002)(3846002)(586003)(102836003)(101416001)(54356999)(76176999)(50986999)(104396002);DIR:OUT;SFP:1102;SCL:1;SRVR:BN3PR11MB0305;H:BN3PR11MB0305.namprd11.prod.outlook.com;FPR:;SPF:None;PTR:InfoNoRecords;MX:1;A:1;LANG:en; spamdiagnosticoutput: 1:99 spamdiagnosticmetadata: NSPM Content-ID: <9E08384C5D7E25458694BF39BA20E24E@namprd11.prod.outlook.com> MIME-Version: 1.0 X-OriginatorOrg: primarydata.com X-MS-Exchange-CrossTenant-originalarrivaltime: 06 Jun 2016 23:49:10.5938 (UTC) X-MS-Exchange-CrossTenant-fromentityheader: Hosted X-MS-Exchange-CrossTenant-id: 03193ed6-8726-4bb3-a832-18ab0d28adb7 X-MS-Exchange-Transport-CrossTenantHeadersStamped: BN3PR11MB0305 X-MC-Unique: 4MqFLFAsSBuV1TelN_Ed7g-1 Content-Type: text/plain; charset=UTF-8 Sender: linux-kernel-owner@vger.kernel.org List-ID: X-Mailing-List: linux-kernel@vger.kernel.org Content-Transfer-Encoding: 8bit X-MIME-Autoconverted: from base64 to 8bit by mail.home.local id u56NpGh1025168 On 6/6/16, 18:58, "Rob Landley" wrote: >From: Rob Landley > >The kernel has string parsing code for NFS mount options, but it seems >to have bit-rotted over the years, so toybox mount needs the following >patch to be able to mount nfs. Without it, the kernel returns "invalid >argument" before sending any network traffic. > >For more information, see >http://lists.landley.net/pipermail/toybox-landley.net/2016-March/004790.html > >Signed-off-by: Rob Landley >--- > > fs/nfs/super.c | 18 +++++++++++++----- > 1 file changed, 13 insertions(+), 5 deletions(-) > >diff --git a/fs/nfs/super.c b/fs/nfs/super.c >index 2137e02..863585d 100644 >--- a/fs/nfs/super.c >+++ b/fs/nfs/super.c >@@ -2130,11 +2130,23 @@ static int nfs_validate_text_mount_data(void *options, > int port = 0; > int max_namelen = PAGE_SIZE; > int max_pathlen = NFS_MAXPATHLEN; >+ int rc; > struct sockaddr *sap = (struct sockaddr *)&args->nfs_server.address; > > if (nfs_parse_mount_options((char *)options, args) == 0) > return -EINVAL; > >+ rc = nfs_parse_devname(dev_name, >+ &args->nfs_server.hostname, >+ max_namelen, >+ &args->nfs_server.export_path, >+ max_pathlen); >+ >+ args->nfs_server.addrlen = rpc_pton(args->net, >+ args->nfs_server.hostname, >+ strlen(args->nfs_server.hostname), >+ sap, sizeof(args->nfs_server.address)); >+ That will scribble over the parsed address. Trond