From mboxrd@z Thu Jan 1 00:00:00 1970 X-Spam-Checker-Version: SpamAssassin 3.4.4 (2020-01-24) on inbox.vuxu.org X-Spam-Level: X-Spam-Status: No, score=-3.3 required=5.0 tests=DKIM_SIGNED,DKIM_VALID, MAILING_LIST_MULTI,RCVD_IN_DNSWL_MED autolearn=ham autolearn_force=no version=3.4.4 Received: (qmail 17313 invoked from network); 9 Oct 2023 02:02:38 -0000 Received: from zero.zsh.org (2a02:898:31:0:48:4558:7a:7368) by inbox.vuxu.org with ESMTPUTF8; 9 Oct 2023 02:02:38 -0000 ARC-Seal: i=1; cv=none; a=rsa-sha256; d=zsh.org; s=rsa-20210803; t=1696816958; b=Bn5gp+WLBje6Qkjb2er9Nnbih5+I0sy1gh022Gx1XmDUttaYJ1S3Qu/nkKNLvo36Lky/er+cue P/AhKgnjxbKMwstocOmryFdU8zQPEiono5qe0DFpbq8xhJgsTLCAr2XYsyzCJ878mUsvB6JBrO d981n0Y835FoncZq91oiV01iBWL0Ji9N5lW6jpNnegnSjva/n0Tf4VsduaQoEi7uvDn2rdTJpA fLSBaBMhU187RXcephPxqKa0H3Rm4Ek4RAk9dFHEVCcv7To9pCBS72snqtt4lk4Skfk2tc+ncS lWEaqzKivgUhXKkjfGY8P44QUp1htVonl+CJgRRe28hhNA==; ARC-Authentication-Results: i=1; zsh.org; iprev=pass (mail-ej1-f51.google.com) smtp.remote-ip=209.85.218.51; dkim=pass header.d=brasslantern-com.20230601.gappssmtp.com header.s=20230601 header.a=rsa-sha256; dmarc=none header.from=brasslantern.com; arc=none ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed; d=zsh.org; s=rsa-20210803; t=1696816958; bh=PLCTkPcPEzYbqQFDz9nb2DUwRjb3ATOMizo/jFkA84A=; h=List-Archive:List-Owner:List-Post:List-Unsubscribe:List-Subscribe:List-Help: List-Id:Sender:Content-Transfer-Encoding:Content-Type:To:Subject:Message-ID: Date:From:In-Reply-To:References:MIME-Version:DKIM-Signature:DKIM-Signature; b=GHNaKD0vfmS8XJPsGTGMTItfOu+KBDJw7W0qldJk0MrxU+JWoSaccB6FxEtMua82bUXCfHV/8z aymg7DnH8ujdOHy1kQHhN0qwgkjF3oIHTbg2t60DOZlakEi9e9OEirLYboCQYq/KTRT34IZ9RW DSF6axwF3HBBEhDZKAq5opf4aOBScFL3wXcsFSFl1JJ+R5tI7YdaVJMEUyNqgSTzXadwbljyfd ike3nAUFXFzgoc+6TmlNMO4H/EeCOwnSB4ygb06CxY/eN2ckj9hGmyaaxJF98Pw9qPb/bFFo4T B/buvSpP2CUeXqYq+w+SEMfviGUO54/dLjoY2yU5CSuLTA==; DKIM-Signature: v=1; a=rsa-sha256; q=dns/txt; c=relaxed/relaxed; d=zsh.org; s=rsa-20210803; h=List-Archive:List-Owner:List-Post:List-Unsubscribe: List-Subscribe:List-Help:List-Id:Sender:Content-Transfer-Encoding: Content-Type:To:Subject:Message-ID:Date:From:In-Reply-To:References: MIME-Version:Reply-To:Cc:Content-ID:Content-Description:Resent-Date: Resent-From:Resent-Sender:Resent-To:Resent-Cc:Resent-Message-ID; bh=Sz3qkKRx1567FkWwUPXc8nAxQ6C8tE1zC3+29LXQAqw=; b=XlXgrPSCjf3+snPJgsgm14bpTv eesnHxMeo3PfMUSiwfK53cPWHHubq2HoprvriPeyrKtYI6qhETRe6f8LRkIkz4LxZS2gKpbLitjcn 08nTyiYeF0g3+WcHvNS93UeJBPR7f4y5nTKpAQXGGyDrEfG5qYgNyjP5WuVtm6X9aK6TUjQZj5MaV lQINgJ45cT30xv2KrFs4lLGg8v6aggtknzUSSvxAOvpbjh/ufXucc/5PbFLTTq66PjanWTfsXgyzz 9E0MnSDBPhPb5Pvonc9izQcvGb7QCGevfvt9eM4Ib4u42I/TUanp+lm4mpmLOOBKgBWDVkUxnaBe1 FkEOqfvg==; Received: by zero.zsh.org with local id 1qpfbQ-0009Wx-UV; Mon, 09 Oct 2023 02:02:36 +0000 Authentication-Results: zsh.org; iprev=pass (mail-ej1-f51.google.com) smtp.remote-ip=209.85.218.51; dkim=pass header.d=brasslantern-com.20230601.gappssmtp.com header.s=20230601 header.a=rsa-sha256; dmarc=none header.from=brasslantern.com; arc=none Received: from mail-ej1-f51.google.com ([209.85.218.51]:51686) by zero.zsh.org with esmtps (TLS1.3:TLS_AES_128_GCM_SHA256:128) id 1qpfaj-0009FB-FN; Mon, 09 Oct 2023 02:01:58 +0000 Received: by mail-ej1-f51.google.com with SMTP id a640c23a62f3a-9b9ad5760b9so685725066b.3 for ; Sun, 08 Oct 2023 19:01:53 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=brasslantern-com.20230601.gappssmtp.com; s=20230601; t=1696816912; x=1697421712; darn=zsh.org; h=content-transfer-encoding:to:subject:message-id:date:from :in-reply-to:references:mime-version:from:to:cc:subject:date :message-id:reply-to; bh=Sz3qkKRx1567FkWwUPXc8nAxQ6C8tE1zC3+29LXQAqw=; b=mGGBXML6lDdpTfBqVGJhT/Ggqs1wleJXgwGnPLNco3RGyOmuaUABHSoVwUHhsrwXvt +ouyExbAYTnkZQwrDFfXKBdXYa/FGHvNaCI+zybcHST52Nk55McX4Djf08Hm+qesdWD8 fRNIcNKjHZADeV6fPghrW/lsCOSwFRXWaSoBzRFw4TYImm25VP1ZpgBt1xMTj5mRgHPX Kmka1KjzHGhwpqCDZzpE9lNabtGR7tg8np8sSWKDHL9+P9xfzeNfmXomqCVK1x1kKuQ6 DyPgYUNpWlm2tbCfX4xQthStzaZD1bdaYebgWN15fFJtYVB5IATwCPsOzzUzSTpeYVCn GXFw== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1696816912; x=1697421712; h=content-transfer-encoding:to:subject:message-id:date:from :in-reply-to:references:mime-version:x-gm-message-state:from:to:cc :subject:date:message-id:reply-to; bh=Sz3qkKRx1567FkWwUPXc8nAxQ6C8tE1zC3+29LXQAqw=; b=daNgNgjdxt2OxkvZjs3gdBRltPg3vn7Svm/oQZ+cgy8voWpU6s5adUiDfTZYL4POxo HjI4BWbNi6CAGrNilIzh0/n4gujZVVK1H3Fcz1baZs38RlbDV65TT2RTJItzDGeSm0JX esr7TJTuecs/nzASDiQCkruriu5a87ZRdCfP8jnqkBo3JdHZDDiiuUeITUWxnXc2zVdJ fB5ABddNkIkPCFr/sfEYn/qKx6SgBmUjpBde+e24o4ba72yC71FribHPTrO4qpvbpPOJ /HLefFnjrP3zqDprfUCSNc21p1tcDCgY0NYwBb5nottu+h0wAa+i4UQqOp0ulyF0aSpR I1FQ== X-Gm-Message-State: AOJu0YxUPTF3jcWF+Oe3TMEW/azHAHiRlJoaY6vSb7wF6iOKpBNJlFkA P86ZmWHDTbANru2I6QZ1+kaM7pmNCodRbyr/wJreb5idUp82M4fbLpY= X-Google-Smtp-Source: AGHT+IF0GdSMfdTW7IH25ydoZLFO3/QJrLLwedUA751DmIDB+uMQUxpd9wF2anr8YUcSS4Q5kLL5r7lpREu800Jrj/w= X-Received: by 2002:a17:906:300f:b0:9a5:7f99:be54 with SMTP id 15-20020a170906300f00b009a57f99be54mr11639324ejz.67.1696816912386; Sun, 08 Oct 2023 19:01:52 -0700 (PDT) MIME-Version: 1.0 References: <51326-1696644317.959346@Oqom.p2Z_.86FS> <53125-1696801645.349232@KWzA.NFGU.Vwsy> In-Reply-To: <53125-1696801645.349232@KWzA.NFGU.Vwsy> From: Bart Schaefer Date: Sun, 8 Oct 2023 19:01:41 -0700 Message-ID: Subject: Re: metafy() (was Re: $watch, log and Cyrillic usernames) To: zsh-workers@zsh.org Content-Type: text/plain; charset="UTF-8" Content-Transfer-Encoding: quoted-printable X-Seq: 52215 Archived-At: X-Loop: zsh-workers@zsh.org Errors-To: zsh-workers-owner@zsh.org Precedence: list Precedence: bulk Sender: zsh-workers-request@zsh.org X-no-archive: yes List-Id: List-Help: , List-Subscribe: , List-Unsubscribe: , List-Post: List-Owner: List-Archive: On Sun, Oct 8, 2023 at 2:47=E2=80=AFPM Oliver Kiddle wrote: > > I'm not sure what the best approach is for the watch module. Subtracting = 1 > from n in each call to strnlen() avoids writing a null past the end of > the buffer but is not ideal for 32 character usernames. Using > META_HEAPDUP instead means a lot of heap allocations in the normal case > where there are only short ASCII-only usernames. Any ideas? Handle the special case explicitly? If I follow your explanation, something like this? int len =3D strnlen(u->ut_name, sizeof(u->ut_name)); char *username =3D metafy(u->ut_name, len, (len =3D=3D sizeof(u->ut_name) ? META_HEAPDUP /* allow for nul terminator *= / : META_USEHEAP));