From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: (qmail 117442 invoked by alias); 21 Nov 2017 14:24:43 -0000 Mailing-List: contact libc-alpha-help@sourceware.org; run by ezmlm Precedence: bulk List-Id: List-Subscribe: List-Archive: List-Post: List-Help: , Sender: libc-alpha-owner@sourceware.org Received: (qmail 109574 invoked by uid 89); 21 Nov 2017 14:24:28 -0000 Authentication-Results: sourceware.org; auth=none X-Virus-Found: No X-Spam-SWARE-Status: No, score=-1.7 required=5.0 tests=BAYES_00,KB_WAM_FROM_NAME_SINGLEWORD,SPF_PASS,T_RP_MATCHES_RCVD autolearn=no version=3.3.2 spammy= X-HELO: mx2.suse.de From: Andreas Schwab To: Adhemerval Zanella Cc: libc-alpha@sourceware.org Subject: Re: [PATCH 7/8] posix: Use char_array for home_dir in glob References: <1511272530-10936-1-git-send-email-adhemerval.zanella@linaro.org> <1511272530-10936-8-git-send-email-adhemerval.zanella@linaro.org> X-Yow: I am having a CONCEPTION-- Date: Tue, 21 Nov 2017 14:24:00 -0000 In-Reply-To: <1511272530-10936-8-git-send-email-adhemerval.zanella@linaro.org> (Adhemerval Zanella's message of "Tue, 21 Nov 2017 11:55:29 -0200") Message-ID: User-Agent: Gnus/5.13 (Gnus v5.13) Emacs/25.3 (gnu/linux) MIME-Version: 1.0 Content-Type: text/plain X-SW-Source: 2017-11/txt/msg00743.txt.bz2 On Nov 21 2017, Adhemerval Zanella wrote: > @@ -645,44 +655,48 @@ __glob (const char *pattern, int flags, int (*errfunc) (const char *, int), > if (!scratch_buffer_grow (&s)) > goto err_nospace; > } > - if (err == 0) > - { > - home_dir = strdup (p->pw_dir); > - malloc_home_dir = 1; > - } > + bool e = (err == 0 && char_array_set_str (&home_dir, p->pw_dir)); > scratch_buffer_free (&s); > - if (err == 0 && home_dir == NULL) > + if (e == false) !e > /* Now construct the full directory. */ > + bool e = true; > if (char_array_pos (&dirname, 1) == '\0') > { > - if (!char_array_set_str (&dirname, home_dir)) > - goto err_nospace; > + e = char_array_set_str (&dirname, char_array_str (&home_dir)); > dirlen = char_array_size (&dirname) - 1; > } > else > { > /* Replaces '~' by the obtained HOME dir. */ > char_array_erase (&dirname, 0); > - if (!char_array_prepend_str (&dirname, home_dir)) > - goto err_nospace; > + e = char_array_prepend_str (&dirname, > + char_array_str (&home_dir)); > + } > + if (e == false) !e Andreas. -- Andreas Schwab, SUSE Labs, schwab@suse.de GPG Key fingerprint = 0196 BAD8 1CE9 1970 F4BE 1748 E4D4 88E3 0EEA B9D7 "And now for something completely different."