From patchwork Wed May 12 20:00:22 2021 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Francisco Munoz X-Patchwork-Id: 1477942 Return-Path: X-Original-To: incoming@patchwork.ozlabs.org Delivered-To: patchwork-incoming@bilbo.ozlabs.org Authentication-Results: ozlabs.org; spf=none (no SPF record) smtp.mailfrom=lists.infradead.org (client-ip=2001:8b0:10b:1:d65d:64ff:fe57:4e05; helo=desiato.infradead.org; envelope-from=hostap-bounces+incoming=patchwork.ozlabs.org@lists.infradead.org; receiver=) Authentication-Results: ozlabs.org; dkim=pass (2048-bit key; secure) header.d=lists.infradead.org header.i=@lists.infradead.org header.a=rsa-sha256 header.s=desiato.20200630 header.b=dV5Law4G; dkim=fail reason="signature verification failed" (2048-bit key; secure) header.d=infradead.org header.i=@infradead.org header.a=rsa-sha256 header.s=bombadil.20210309 header.b=DrBvIMHi; dkim=fail reason="signature verification failed" (1024-bit key; unprotected) header.d=microsoft.com header.i=@microsoft.com header.a=rsa-sha256 header.s=selector2 header.b=GFuAchys; dkim-atps=neutral Received: from desiato.infradead.org (desiato.infradead.org [IPv6:2001:8b0:10b:1:d65d:64ff:fe57:4e05]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) key-exchange X25519 server-signature RSA-PSS (4096 bits) server-digest SHA256) (No client certificate requested) by ozlabs.org (Postfix) with ESMTPS id 4Fgk4T2szHz9sVb for ; Thu, 13 May 2021 17:36:41 +1000 (AEST) DKIM-Signature: v=1; a=rsa-sha256; q=dns/txt; c=relaxed/relaxed; d=lists.infradead.org; s=desiato.20200630; h=Sender:List-Subscribe:List-Help: List-Post:List-Archive:List-Unsubscribe:List-Id:MIME-Version:Content-Type: Message-ID:Date:Subject:CC:To:From:Reply-To:Content-Transfer-Encoding: Content-ID:Content-Description:Resent-Date:Resent-From:Resent-Sender: Resent-To:Resent-Cc:Resent-Message-ID:In-Reply-To:References:List-Owner; bh=BdVQ/qRl1mru6cwgfmYUAVohCTuhpv1Fv0CQXLaFRwg=; b=dV5Law4G+2k6LU2miYcn7EZFzs EtlzDFDzrPFahtul0T0OlMkamAzwJIS680Q6SSgepchek54eHeYkXuBJ+EuY/eQqKD9j8HTFmVM1I xmpWf47jbNdPKEbvHjuTAEZQkCIZe3PFS6ytpIMIXo89PtQ3vIaOitbh9P/3dD1MI4yFz5V1iyi1b y61JiNuY3p8vsRz3FW7XDPNKQEPk8sQs2y68Vghz19a2fzQAX67Whca1UBX3YXAP1gDvTWQaWrxvR QTRcLzERB986ib5j5rUqZZk6D27E7J4E8ZTr8YdUV460foGqd5wqEJ/h8Clu1kw9QU6wKgYCTvx4M MzvLZeog==; Received: from localhost ([::1] helo=desiato.infradead.org) by desiato.infradead.org with esmtp (Exim 4.94 #2 (Red Hat Linux)) id 1lh5sW-0050XN-0Y; Thu, 13 May 2021 07:35:28 +0000 Received: from bombadil.infradead.org ([2607:7c80:54:e::133]) by desiato.infradead.org with esmtps (Exim 4.94 #2 (Red Hat Linux)) id 1lgv1w-003qP1-PN for hostap@desiato.infradead.org; Wed, 12 May 2021 20:00:29 +0000 DKIM-Signature: v=1; a=rsa-sha256; q=dns/txt; c=relaxed/relaxed; d=infradead.org; s=bombadil.20210309; h=MIME-Version:Content-Type:Message-ID: Date:Subject:CC:To:From:Sender:Reply-To:Content-Transfer-Encoding:Content-ID: Content-Description:In-Reply-To:References; bh=OEk9tKSPP7toIezJozC8KyJ9QYk8oWBsILo/kxQKiXU=; b=DrBvIMHiW9XFOp/JcuR5wMSsft BjS/WKPIUqvctbFGQZF76wDvbBTlueJ5u/WwDwmb3p2Zt11lDd5ZDEjlHr4G8VXzgKvBjdYNd9ZUS zqprEn27/Q6ooktfHwCS5Epa8I3vVHq+HI2d4mrY83Ve8wWxpKHZimRZERbek69Rd3l27kRaIBWpb 99BtFSI+X7TDIsyhnjjRcPqPMsTZ/x6vsEmsjAiNVQvNMmvs1qJOEVYWLkj1/Sp0JmgtXieJx02M4 BJclU4eOYP8Sheq61bXmyCrf0vuKsEsrPdX80ZxwgfkICCf39XmPXgrxANtu/wPnd+gpmcxp3F7Hn +Iz7UAHQ==; Received: from mail-bn7nam10on2110.outbound.protection.outlook.com ([40.107.92.110] helo=NAM10-BN7-obe.outbound.protection.outlook.com) by bombadil.infradead.org with esmtps (Exim 4.94 #2 (Red Hat Linux)) id 1lgv1t-00AmW4-RZ for hostap@lists.infradead.org; Wed, 12 May 2021 20:00:27 +0000 ARC-Seal: i=1; a=rsa-sha256; s=arcselector9901; d=microsoft.com; cv=none; b=iJWLeoiDYatvQb6K2Fzn3pXHHlK6ZSVRmYXkfEjMqKUG3tUoLidWBG0g3HtGnGcOehSjsDpDE7SDEgiqq3DAq5z1nF5T9aPi+tF2gDRlEhoHwJAQDuLVVSt4YSFDGF4LVPd5iy0UwLbwfbRiPuNzsxbWvHegQiQpgWOl2xyt4eKfRY2WCzfeMi7tdaVl2eYrVGoJlqs7OR//SIFaMqFbE9cnFGVRRVn1AQZbOgO5obbekgWVyZPNw16hUn0cZ98cNOKmfQ2aMYPxIlyHk0TPyAV9m54Z76z/78u83V4A8GqxI5139wuWQw2Ci+yJzGWVBWb5rQurFsFE1R0h6SQzGg== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=microsoft.com; s=arcselector9901; h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck; bh=OEk9tKSPP7toIezJozC8KyJ9QYk8oWBsILo/kxQKiXU=; b=GpUWBCvtuMS1YZtiDEnkEp9mmWWsEjPr+2Va3vxaFATypJfahzwnsubo1/eqrpPDWh32aMNorgbDxsCvEVYd0bm4eBy6JnndUBFsS60B8u0EIVouoP+YBAgSSkirLqN1LXl6mpMnZO6xmVLnb+j3SghxIsNPIkmmO/ZbpkeoOL8M6ZjlYrv5LaSGo5bmaDCiRwWeFxQ656t7IlfrjZYqlVu1gzvGmYPiPFHl5IJoP1EC5jVUHc4sLnj23VuTnazIjD96GB6jz0UEGGpKCZHzWaCrmbx9e9rU0pS7HqV+QAaDYLu718VdxtOojv7hZ1+V0AxBlz3Z4Wt4Yco5hJ0JIA== ARC-Authentication-Results: i=1; mx.microsoft.com 1; spf=pass smtp.mailfrom=microsoft.com; dmarc=pass action=none header.from=microsoft.com; dkim=pass header.d=microsoft.com; arc=none DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=microsoft.com; s=selector2; h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck; bh=OEk9tKSPP7toIezJozC8KyJ9QYk8oWBsILo/kxQKiXU=; b=GFuAchysIlBUs3ZxqFcvEsJG/wR2Q0YwpE0A1kxDVGo+CbCGOtOsnCOaDwR/aJ7MxpgEOeeo7aZFqXVx021d21hygAnpaJUwIyHoBejeuY/66SSZYgpgiCx6Rh/C5z8+Z5OWiUW1TRHqRyWsMev0zQ7TM2flTfXQdWlEzH5tOWU= Received: from BN8PR21MB1283.namprd21.prod.outlook.com (2603:10b6:408:a2::21) by BN6PR21MB0497.namprd21.prod.outlook.com (2603:10b6:404:b3::7) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.4150.8; Wed, 12 May 2021 20:00:23 +0000 Received: from BN8PR21MB1283.namprd21.prod.outlook.com ([fe80::3098:b5f:bb64:2708]) by BN8PR21MB1283.namprd21.prod.outlook.com ([fe80::3098:b5f:bb64:2708%3]) with mapi id 15.20.4150.011; Wed, 12 May 2021 20:00:23 +0000 From: Francisco Munoz To: "hostap@lists.infradead.org" CC: Chris Ong Subject: [PATCH] Return NULL instead of FAIL when retrieving a network property that has not been defined Thread-Topic: [PATCH] Return NULL instead of FAIL when retrieving a network property that has not been defined Thread-Index: AddHaV3baHoH1ZPJTWWhyuRQKDdI+g== Date: Wed, 12 May 2021 20:00:22 +0000 Message-ID: Accept-Language: en-US Content-Language: en-US X-MS-Has-Attach: yes X-MS-TNEF-Correlator: msip_labels: MSIP_Label_f42aa342-8706-4288-bd11-ebb85995028c_ActionId=98f53787-4046-415e-9302-99aa02f8bb41; MSIP_Label_f42aa342-8706-4288-bd11-ebb85995028c_ContentBits=0; MSIP_Label_f42aa342-8706-4288-bd11-ebb85995028c_Enabled=true; MSIP_Label_f42aa342-8706-4288-bd11-ebb85995028c_Method=Standard; MSIP_Label_f42aa342-8706-4288-bd11-ebb85995028c_Name=Internal; MSIP_Label_f42aa342-8706-4288-bd11-ebb85995028c_SetDate=2021-05-12T19:58:36Z; MSIP_Label_f42aa342-8706-4288-bd11-ebb85995028c_SiteId=72f988bf-86f1-41af-91ab-2d7cd011db47; authentication-results: lists.infradead.org; dkim=none (message not signed) header.d=none;lists.infradead.org; dmarc=none action=none header.from=microsoft.com; x-originating-ip: [2603:9001:20a:ead3:f041:f3a7:6e6c:74ba] x-ms-publictraffictype: Email x-ms-office365-filtering-correlation-id: 625b2dc3-281b-4136-0049-08d9158093d8 x-ms-traffictypediagnostic: BN6PR21MB0497: x-ms-exchange-transport-forked: True x-microsoft-antispam-prvs: x-ms-oob-tlc-oobclassifiers: OLM:813; x-ms-exchange-senderadcheck: 1 x-microsoft-antispam: BCL:0; x-microsoft-antispam-message-info: bCfhimKqHmRknrg4Fg6eJ01xAx5AIbWADrUoqA29Bv0yoyMdaF9EY2jKyffg1BSWP83ItedVQ94M38B+aHLTZIMNAM0q+qEcUrM77u5zPLyiestViNHvnqV4pafYJK3ls4OzF+HbahGMUqae/cs/xfOrTEqggrnB/UZ0EUEqNPScDhZ7Ezd70y0Ot4kJX3VielrAz/rINiy2NZh+BlFISpaOcedItCpj8WWKKv/8ebL0jdF61P8ISrzn+NvW498b9yvhyh0RB+hIyDMC4tpMSU7d8qMdQSHTyKNVBi29ARg9aO2X6mR09tZTjjqAq+J5Zv75Q6Ztf+IBELieBgAKyAmbw1xayS3E9QoaSn2skwI7gB3xk3Xenvighwo5SxBsqmD0ryEOZ0LXKbcR+tL+RDgCFPRQw+W4cp4uUTcqWg4VCDNakFwYAWWEJXCLQYATc9gZ6Bh+FMO4Y4oUq3cXqe6G7uGs1CSOH1WwsheOxyF2U2pz6ho0zSCEw09hq2s8gyC9O3c/nrlBH36ZSr0+C6J02B857ofAdAWjdH8j+Z9DpiPinsYkCox7m0xiiVI3R4keWV+n1fVz6dk+wwJELJI//hDqrxl8IrXuYcj5bcM= x-forefront-antispam-report: CIP:255.255.255.255; CTRY:; LANG:en; SCL:1; SRV:; IPV:NLI; SFV:NSPM; H:BN8PR21MB1283.namprd21.prod.outlook.com; PTR:; CAT:NONE; SFS:(4636009)(366004)(38100700002)(71200400001)(4326008)(6916009)(122000001)(76116006)(107886003)(66946007)(8676002)(66616009)(66556008)(10290500003)(52536014)(5660300002)(8936002)(66446008)(66476007)(8990500004)(83380400001)(478600001)(64756008)(86362001)(82950400001)(2906002)(7696005)(316002)(6506007)(33656002)(186003)(55016002)(9686003)(82960400001)(99936003); DIR:OUT; SFP:1102; x-ms-exchange-antispam-messagedata-chunkcount: 2 x-ms-exchange-antispam-messagedata-0: WXWvGjmMBv4Bj4wCetiQGgXEcpCHbq702Kllf93CzJMGvhebemBiFioYJn5Gzgc3BJu3YnX/qMrPDlVrGJsiFzwXoMQgjgNRPdzO+7aOaVJInpxGWM3p9oJKOGEQa6TZvxs3BZ4dqOLmENWVB4aBlpEp55xotIzI0EdVyd7e8klDgM3QcCI6GSzXXsq4aZ1W/a1PsQFASVpRkdCH3Unhha2rpHwVqQXpUUyPvmcZG9xUjb9iUtE92xIadZiMCFq3NlQZuXFOniMbHWSrwuQponxLK9Hn8L5usSlLGkFKil8DgQ7JlzOLZxas7tHnrRreebsM4wYuNcY+1deo9pxqHg1PP+zrX9DwijbrrgckJXIQ9P+NN6YCvdApOD5LcuTfKK07UNVyzytMRMJuyhjv7/Dj0vm/wXc3wuwVHqjuZiTZF3NKaztwNoQpxszXHQe3WjjTSJ2IcnMgD27eX7qPKSgZXQ2ROPPaxERThZ1JNaZqHWDJZR7AQgvgaBA1VAUc80YMQmqMY/CGYHvY3ld1sEW9WXOEAFmGwfDOWm59zW+j5FAXF/15cwYnvTRHadJPkEBy6ct7vhYYLKFOm4hxiHMi/I8AJXgd/sT5rpfZAN03g2HGxx/YXlXjhW76ev/Kl/kNyzMNGdsi303yHRLFZQoBfVmsC2yFqJ8SlkAY+l1tynyUr3sIVKUiGVyo8kYiqeH3tYmpAvRkJXW5iQBO+Sn+ouqio1RcZHVAfK9ATfbU7LiZf7uWO1e3URsdGshHWnVqGKQ/LuuzsmLngBpqBguOajgaoi+0Jv6RQAd9pFwTJ5zAXVCaEjQjZZGyXj54uivSvncBuMyyl47n9WeNJiKSz/Uze4ptqbNEcy7SK+fWoAw2zk035btqY4lnapIZGt6h35IdDFh/9SOmX09Ui2EpoXV7hO+Kt/rXD3CtT+5UAPdDNlFHEzon317aPo1S9xE9KkRRpSAP38WOUrE7eOHW878OUeNlistZ3cb4 x-ms-exchange-antispam-messagedata-1: 5faNUeYiQ+6aTBuQT0VIE6RHRiyIATEvdvqDRgAOW4IiA5F1+RQQSl6jI2aVO8YjTPuJMlrJctieInGZOb8k7ef0qjIec5AeSpMi0CuMu9yO1cpFMe7B3toGAEukcE4uLoL+zSuVtSvrcJEJg0ANJ/dl+W368wYdtg8wv4iLvMYHOI11adMU5rJaqyk1EAMKwO1SgGfKi3Xc8jTBq/y0CLSeZ/YwUdCX+PpJ3OAdE84IV1rReDnn8GLRmr1Mo5PKO8qG/nABKfIdE0vsueT/6XPM/Jtjo6QR2UkyY5e83bC6hx8iQomUYZ3kQsbyZxR2KU69a50A+ihudONeSyreBG8aa+gfGIMFJ9o9UXtt8YbJK+a+FLiDLV9avpfcsbSlDZg= MIME-Version: 1.0 X-OriginatorOrg: microsoft.com X-MS-Exchange-CrossTenant-AuthAs: Internal X-MS-Exchange-CrossTenant-AuthSource: BN8PR21MB1283.namprd21.prod.outlook.com X-MS-Exchange-CrossTenant-Network-Message-Id: 625b2dc3-281b-4136-0049-08d9158093d8 X-MS-Exchange-CrossTenant-originalarrivaltime: 12 May 2021 20:00:22.9010 (UTC) X-MS-Exchange-CrossTenant-fromentityheader: Hosted X-MS-Exchange-CrossTenant-id: 72f988bf-86f1-41af-91ab-2d7cd011db47 X-MS-Exchange-CrossTenant-mailboxtype: HOSTED X-MS-Exchange-CrossTenant-userprincipalname: aDSlC0jo0h/nO6T04oVTRZCqEmj283EONI61I9D1hpM3EkMcS6zr3KDIzyQT2NP4Bkh9tET6e2HV1V5K4EnmxQ== X-MS-Exchange-Transport-CrossTenantHeadersStamped: BN6PR21MB0497 X-CRM114-Version: 20100106-BlameMichelson ( TRE 0.8.0 (BSD) ) MR-646709E3 X-CRM114-CacheID: sfid-20210512_130026_005081_3DBCE14B X-CRM114-Status: GOOD ( 20.68 ) X-Spam-Score: 0.5 (/) X-Spam-Report: Spam detection software, running on the system "bombadil.infradead.org", has NOT identified this incoming email as spam. The original message has been attached to this so you can view it or label similar future email. If you have any questions, see the administrator of that system for details. Content preview: Currently, the Supplicant returns `FAIL` when trying to get or duplicate a string field on a network that is NULL. The supplicant also returns "FAIL" for other reasons as well, such as not being able [...] Content analysis details: (0.5 points, 5.0 required) pts rule name description ---- ---------------------- -------------------------------------------------- -0.0 RCVD_IN_DNSWL_NONE RBL: Sender listed at https://www.dnswl.org/, no trust [40.107.92.110 listed in list.dnswl.org] 0.0 SPF_NONE SPF: sender does not publish an SPF Record -0.0 SPF_HELO_PASS SPF: HELO matches SPF record -0.0 RCVD_IN_MSPIKE_H2 RBL: Average reputation (+2) [40.107.92.110 listed in wl.mailspike.net] -0.1 DKIM_VALID Message has at least one valid DKIM or DK signature -0.1 DKIM_VALID_AU Message has a valid DKIM or DK signature from author's domain 0.1 DKIM_SIGNED Message has a DKIM or DK signature, not necessarily valid -0.1 DKIM_VALID_EF Message has a valid DKIM or DK signature from envelope-from domain 1.0 FORGED_SPF_HELO No description available. -0.3 DKIMWL_WL_HIGH DKIMwl.org - High trust sender X-Mailman-Approved-At: Thu, 13 May 2021 08:35:25 +0100 X-BeenThere: hostap@lists.infradead.org X-Mailman-Version: 2.1.34 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Sender: "Hostap" Errors-To: hostap-bounces+incoming=patchwork.ozlabs.org@lists.infradead.org Currently, the Supplicant returns `FAIL` when trying to get or duplicate a string field on a network that is NULL. The supplicant also returns "FAIL" for other reasons as well, such as not being able to allocate memory while trying to retrieve the field. This can cause confusion as the caller is unsure if there was an error or if the field is not set. This patch updates the Supplicant to return "NULL" when a string field is not set on a network, allowing the caller to distinguish between an error and a non-present value. The patch is inline below and attached. Signed-off-by: Francisco Munoz --- wpa_supplicant/config.c | 15 ++++++++++-- wpa_supplicant/ctrl_iface.c | 46 +++++++++++++++++++++++++++++-------- 2 files changed, 50 insertions(+), 11 deletions(-) diff --git a/wpa_supplicant/config.c b/wpa_supplicant/config.c index 7a62f96..5db352e 100644 --- a/wpa_supplicant/config.c +++ b/wpa_supplicant/config.c @@ -183,8 +183,11 @@ static char * wpa_config_write_str(const struct parse_data *data, char **src; src = (char **) (((u8 *) ssid) + (long) data->param1); - if (*src == NULL) + if (*src == NULL) { + // The field is not set, set errno and return NULL + errno = -ENOENT; return NULL; + } if (data->param2) len = *((size_t *) (((u8 *) ssid) + (long) data->param2)); @@ -592,6 +595,8 @@ static char * wpa_config_write_psk(const struct parse_data *data, if (ssid->psk_set) return wpa_config_write_string_hex(ssid->psk, PMK_LEN); + // No PSK, set errno return NULL + errno = -ENOENT; return NULL; } #endif /* NO_CONFIG_WRITE */ @@ -1567,8 +1572,11 @@ static char * wpa_config_write_eap(const struct parse_data *data, const struct eap_method_type *eap_methods = ssid->eap.eap_methods; const char *name; - if (eap_methods == NULL) + if (eap_methods == NULL) { + // The field is not set, set errno and return NULL + errno = -ENOENT; return NULL; + } pos = buf = os_zalloc(100); if (buf == NULL) @@ -3125,7 +3133,10 @@ char * wpa_config_get_no_key(struct wpa_ssid *ssid, const char *var) return os_strdup("*"); } + // Preserve errno + int error = errno; os_free(res); + errno = error; return NULL; } return res; diff --git a/wpa_supplicant/ctrl_iface.c b/wpa_supplicant/ctrl_iface.c index 8d5532d..104b192 100644 --- a/wpa_supplicant/ctrl_iface.c +++ b/wpa_supplicant/ctrl_iface.c @@ -3492,11 +3492,19 @@ static int wpa_supplicant_ctrl_iface_get_network( return -1; } + errno = 0; value = wpa_config_get_no_key(ssid, name); if (value == NULL) { - wpa_printf(MSG_EXCESSIVE, "CTRL_IFACE: Failed to get network " - "variable '%s'", name); - return -1; + int ret = -1; + if (errno == -ENOENT) { + wpa_printf(MSG_EXCESSIVE, "CTRL_IFACE: Network variable '%s' " + "is unset", name); + ret = -ENOENT; + } else { + wpa_printf(MSG_EXCESSIVE, "CTRL_IFACE: Failed to get network " + "variable '%s'", name); + } + return ret; } res = os_strlcpy(buf, value, buflen); @@ -3553,9 +3561,16 @@ static int wpa_supplicant_ctrl_iface_dup_network( value = wpa_config_get(ssid_s, name); if (value == NULL) { - wpa_printf(MSG_DEBUG, "CTRL_IFACE: Failed to get network " - "variable '%s'", name); - return -1; + int ret = -1; + if (errno == -ENOENT) { + wpa_printf(MSG_EXCESSIVE, "CTRL_IFACE: Network variable '%s' " + "is unset", name); + ret = -ENOENT; + } else { + wpa_printf(MSG_EXCESSIVE, "CTRL_IFACE: Failed to get network " + "variable '%s'", name); + } + return ret; } ret = wpa_supplicant_ctrl_iface_update_network(dst_wpa_s, ssid_d, name, @@ -10423,10 +10438,23 @@ char * wpa_supplicant_ctrl_iface_process(struct wpa_supplicant *wpa_s, } else if (os_strncmp(buf, "GET_NETWORK ", 12) == 0) { reply_len = wpa_supplicant_ctrl_iface_get_network( wpa_s, buf + 12, reply, reply_size); + if (reply_len < 0) { + if (abs(reply_len) == ENOENT) { + os_memcpy(reply, "NULL\n", 5); + reply_len = 5; + } + } } else if (os_strncmp(buf, "DUP_NETWORK ", 12) == 0) { - if (wpa_supplicant_ctrl_iface_dup_network(wpa_s, buf + 12, - wpa_s)) - reply_len = -1; + int ret = wpa_supplicant_ctrl_iface_dup_network(wpa_s, buf + 12, + wpa_s); + if (ret < 0) { + if (abs(ret) == ENOENT) { + os_memcpy(reply, "NULL\n", 5); + reply_len = 5; + } else { + reply_len = ret; + } + } } else if (os_strcmp(buf, "LIST_CREDS") == 0) { reply_len = wpa_supplicant_ctrl_iface_list_creds( wpa_s, reply, reply_size);