From patchwork Sun Apr 23 16:05:47 2023 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Sergey Bugaev X-Patchwork-Id: 68188 Return-Path: X-Original-To: patchwork@sourceware.org Delivered-To: patchwork@sourceware.org Received: from server2.sourceware.org (localhost [IPv6:::1]) by sourceware.org (Postfix) with ESMTP id B27EA3856DED for ; Sun, 23 Apr 2023 16:06:58 +0000 (GMT) DKIM-Filter: OpenDKIM Filter v2.11.0 sourceware.org B27EA3856DED DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=sourceware.org; s=default; t=1682266018; bh=F9E2/SmI+5kO6abVEu5l/6cZWbiF6D6J8pPHD1YYAao=; h=To:Cc:Subject:Date:In-Reply-To:References:List-Id: List-Unsubscribe:List-Archive:List-Post:List-Help:List-Subscribe: From:Reply-To:From; b=mqwj6dsNzlDxnD9zjBCam0RKMxELpfMfoIuI7KFxH94Wbl4V2T0IiJYS4A5D38Hdb v0HacjK+5JuoChYLboNFbmTngZj5tlT95qDuU4p/ocdNMgRxJmGjqM0zi412FmnueB K9dK2Tmi24RKOGV1goTrIk5fxfFTVSmPtsCR+U7s= X-Original-To: libc-alpha@sourceware.org Delivered-To: libc-alpha@sourceware.org Received: from mail-lj1-x230.google.com (mail-lj1-x230.google.com [IPv6:2a00:1450:4864:20::230]) by sourceware.org (Postfix) with ESMTPS id 0D1983858C53 for ; Sun, 23 Apr 2023 16:05:54 +0000 (GMT) DMARC-Filter: OpenDMARC Filter v1.4.2 sourceware.org 0D1983858C53 Received: by mail-lj1-x230.google.com with SMTP id 38308e7fff4ca-2a7ac8a2c8bso33159351fa.3 for ; Sun, 23 Apr 2023 09:05:53 -0700 (PDT) X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20221208; t=1682265952; x=1684857952; h=content-transfer-encoding:mime-version:references:in-reply-to :message-id:date:subject:cc:to:from:x-gm-message-state:from:to:cc :subject:date:message-id:reply-to; bh=F9E2/SmI+5kO6abVEu5l/6cZWbiF6D6J8pPHD1YYAao=; b=aw1rTQBmH+qR+Y8wILRDfZMOdIm5ZApQPiyX/AZnaxPpbq/B913K6wdH9aJ1B27MPg NajqMR+ys1AyC9oK3pDvdxVHAKXvOzg+EbArAIo2WSrywZl0+c4Y+pOxejK+b9esIjNf a0oRnf/c05ZBaIRe4oqOSjCUDZ/PUIgFLrfIctygT63juq2q14NPj+pCmdYKpsTrMZvX Aemg5BEAF/j+GAqNLjheI7tXTTrjAW1nM41LZ/F5e8F7dR0AS6UAumRdUGNrwC1fzrov sQlINlTn/wpQ4kK0Kd+/XKirUzJn+FdgPRLA9PEbr0NBa83v9/2Qyndr56xagfCjmICR YJ9w== X-Gm-Message-State: AAQBX9fBBHBXNpcFq55a8KrLioJmViuQUuY4KJ2e2qmELJyG6kCTOXke gqbC4iGcJA1K2d+O/yiZSkHtXRtn8pvSUA== X-Google-Smtp-Source: AKy350a1he3c+MCMy5SUv4g0+37h3lzTtTAAdxMAhGT3NNks4aBmHFYPkyeAI3S/1X5I8kkJUa9rFQ== X-Received: by 2002:a2e:9f09:0:b0:2a8:b95a:c10d with SMTP id u9-20020a2e9f09000000b002a8b95ac10dmr2030679ljk.8.1682265951920; Sun, 23 Apr 2023 09:05:51 -0700 (PDT) Received: from surface-pro-6.. ([2a00:1370:818c:4a57:e26d:6595:78ee:6d64]) by smtp.gmail.com with ESMTPSA id y20-20020a2e7d14000000b002a9ed7f6f90sm1411277ljc.73.2023.04.23.09.05.51 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Sun, 23 Apr 2023 09:05:51 -0700 (PDT) To: libc-alpha@sourceware.org Cc: bug-hurd@gnu.org, Samuel Thibault Subject: [PATCH v2 3/4] hurd: Only deallocate addrport when it's valid Date: Sun, 23 Apr 2023 19:05:47 +0300 Message-Id: <20230423160548.126576-3-bugaevc@gmail.com> X-Mailer: git-send-email 2.40.0 In-Reply-To: <20230423160548.126576-1-bugaevc@gmail.com> References: <20230423160548.126576-1-bugaevc@gmail.com> MIME-Version: 1.0 X-Spam-Status: No, score=-11.3 required=5.0 tests=BAYES_00, DKIM_SIGNED, DKIM_VALID, DKIM_VALID_AU, DKIM_VALID_EF, FREEMAIL_FROM, GIT_PATCH_0, RCVD_IN_DNSWL_NONE, SPF_HELO_NONE, SPF_PASS, TXREP, T_SCC_BODY_TEXT_LINE autolearn=ham autolearn_force=no version=3.4.6 X-Spam-Checker-Version: SpamAssassin 3.4.6 (2021-04-09) on server2.sourceware.org X-BeenThere: libc-alpha@sourceware.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: Libc-alpha mailing list List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-Patchwork-Original-From: Sergey Bugaev via Libc-alpha From: Sergey Bugaev Reply-To: Sergey Bugaev Errors-To: libc-alpha-bounces+patchwork=sourceware.org@sourceware.org Sender: "Libc-alpha" Signed-off-by: Sergey Bugaev --- sysdeps/mach/hurd/recv.c | 3 ++- sysdeps/mach/hurd/recvfrom.c | 3 ++- sysdeps/mach/hurd/recvmsg.c | 3 ++- sysdeps/mach/hurd/sendmsg.c | 5 +++-- sysdeps/mach/hurd/sendto.c | 2 +- 5 files changed, 10 insertions(+), 6 deletions(-) diff --git a/sysdeps/mach/hurd/recv.c b/sysdeps/mach/hurd/recv.c index 3bd5c16f..1783e38d 100644 --- a/sysdeps/mach/hurd/recv.c +++ b/sysdeps/mach/hurd/recv.c @@ -54,7 +54,8 @@ __recv (int fd, void *buf, size_t n, int flags) if (err) return __hurd_sockfail (fd, flags, err); - __mach_port_deallocate (__mach_task_self (), addrport); + if (MACH_PORT_VALID (addrport)) + __mach_port_deallocate (__mach_task_self (), addrport); __vm_deallocate (__mach_task_self (), (vm_address_t) cdata, clen); if (bufp != buf) diff --git a/sysdeps/mach/hurd/recvfrom.c b/sysdeps/mach/hurd/recvfrom.c index 1cd5f917..6f2c927a 100644 --- a/sysdeps/mach/hurd/recvfrom.c +++ b/sysdeps/mach/hurd/recvfrom.c @@ -94,7 +94,8 @@ __recvfrom (int fd, void *buf, size_t n, int flags, __SOCKADDR_ARG addrarg, else if (addr_len != NULL) *addr_len = 0; - __mach_port_deallocate (__mach_task_self (), addrport); + if (MACH_PORT_VALID (addrport)) + __mach_port_deallocate (__mach_task_self (), addrport); /* Toss control data; we don't care. */ __vm_deallocate (__mach_task_self (), (vm_address_t) cdata, clen); diff --git a/sysdeps/mach/hurd/recvmsg.c b/sysdeps/mach/hurd/recvmsg.c index 9a37a053..9cf3de48 100644 --- a/sysdeps/mach/hurd/recvmsg.c +++ b/sysdeps/mach/hurd/recvmsg.c @@ -135,7 +135,8 @@ __libc_recvmsg (int fd, struct msghdr *message, int flags) else if (message->msg_name != NULL) message->msg_namelen = 0; - __mach_port_deallocate (__mach_task_self (), aport); + if (MACH_PORT_VALID (aport)) + __mach_port_deallocate (__mach_task_self (), aport); if (buf == data) buf += len; diff --git a/sysdeps/mach/hurd/sendmsg.c b/sysdeps/mach/hurd/sendmsg.c index 2f19797b..f9ad7699 100644 --- a/sysdeps/mach/hurd/sendmsg.c +++ b/sysdeps/mach/hurd/sendmsg.c @@ -198,8 +198,9 @@ __libc_sendmsg (int fd, const struct msghdr *message, int flags) message->msg_controllen, &amount); LIBC_CANCEL_RESET (cancel_oldtype); - __mach_port_deallocate (__mach_task_self (), - aport); + if (MACH_PORT_VALID (aport)) + __mach_port_deallocate (__mach_task_self (), + aport); } err; })); diff --git a/sysdeps/mach/hurd/sendto.c b/sysdeps/mach/hurd/sendto.c index 5a960de8..777af1c4 100644 --- a/sysdeps/mach/hurd/sendto.c +++ b/sysdeps/mach/hurd/sendto.c @@ -94,7 +94,7 @@ __sendto (int fd, err; })); - if (aport != MACH_PORT_NULL) + if (MACH_PORT_VALID (aport)) __mach_port_deallocate (__mach_task_self (), aport); return err ? __hurd_sockfail (fd, flags, err) : wrote;