From owner-svn-src-all@freebsd.org Sun May 29 16:48:19 2016 Return-Path: Delivered-To: svn-src-all@mailman.ysv.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:1900:2254:206a::19:1]) by mailman.ysv.freebsd.org (Postfix) with ESMTP id DCDD8B53613; Sun, 29 May 2016 16:48:19 +0000 (UTC) (envelope-from asomers@gmail.com) Received: from mail-oi0-x22c.google.com (mail-oi0-x22c.google.com [IPv6:2607:f8b0:4003:c06::22c]) (using TLSv1.2 with cipher ECDHE-RSA-AES128-GCM-SHA256 (128/128 bits)) (Client CN "smtp.gmail.com", Issuer "Google Internet Authority G2" (verified OK)) by mx1.freebsd.org (Postfix) with ESMTPS id A85021A79; Sun, 29 May 2016 16:48:19 +0000 (UTC) (envelope-from asomers@gmail.com) Received: by mail-oi0-x22c.google.com with SMTP id b65so240744618oia.1; Sun, 29 May 2016 09:48:19 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20120113; h=mime-version:sender:in-reply-to:references:date:message-id:subject :from:to:cc; bh=U9LkKh45HX6P1vyAhE1HsCSNrskyFyOGXD7nWPvZyjM=; b=Ati72K4c4hYrmDvGbTopR20wSmAW1h5QqTI8E7Q2nx6cjbuXXMGlYUJLW6w+ylmy58 Vw2nXls6Ge+GbXfdjVlSi36La/8BiWeBa8w51SVXmTWbxBT4VEKy6sqTiyj4FUY6o92b B5ypesLZosllggcLqkTPS6tf+g0pn3wHAbYUYSH5ufXm3V30nezsAM5woqfe853P//5l V4+YfaLyH8d031uUlsfY1X5FgS/HGkFG+w0Iv+N6KKnFGkqMBUUHFtyYlYLfCNyTn0FM qWeZz6rNG8c+DG/g1wv4tnrjG3y2ca+kin9dAcuWgSF4qeoPtxF3opzCO6gsSrNT45JP wgDg== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20130820; h=x-gm-message-state:mime-version:sender:in-reply-to:references:date :message-id:subject:from:to:cc; bh=U9LkKh45HX6P1vyAhE1HsCSNrskyFyOGXD7nWPvZyjM=; b=PkpFup9VlhVPluFY0401F+vVg/XvGH/FYC7BYmdBtpMogvo4GkWvakb+4DeOXgHDE/ SL1D7ullPeM+CwjDTFyVV9BkkHs1i9Ji18h6wIQDZ90GEjPw5BBvMv46srPAUCRf1Ipu OoRe9/tV+Oe772SZSUL4wXOn/8s/iq8dgQ1pVO2V2Y31Jrm7vbUdPpdTMpX2jJpIBv7r OoMwICrSfpAZtkZ+utSsSgV8pl95RSVivLQYjL/cWun3NIt00lUN4Q5ikzCwiYgPFlFc gTgApgcx8xyoLuW25HhSGde29U6rtfYgHt1pUgpwVmw8/KjV12Tko5PEKFJWAcd+2vu1 DHsA== X-Gm-Message-State: ALyK8tLipCkyWpoZQFiBN0ifenx4zToNzBKuzv33nGjxVg6WoymE6ZU5lAYze0u2KlYg1vGTyTxks4toqdi7uA== MIME-Version: 1.0 X-Received: by 10.202.212.19 with SMTP id l19mr15668671oig.182.1464540498935; Sun, 29 May 2016 09:48:18 -0700 (PDT) Sender: asomers@gmail.com Received: by 10.202.4.200 with HTTP; Sun, 29 May 2016 09:48:18 -0700 (PDT) In-Reply-To: <201605291041.u4TAfRO3097741@repo.freebsd.org> References: <201605291041.u4TAfRO3097741@repo.freebsd.org> Date: Sun, 29 May 2016 10:48:18 -0600 X-Google-Sender-Auth: _D3b4VOGF4dXOEZwRfDtXL5Ag40 Message-ID: Subject: Re: svn commit: r300952 - head/usr.sbin/services_mkdb From: Alan Somers To: Ed Schouten Cc: "src-committers@freebsd.org" , "svn-src-all@freebsd.org" , "svn-src-head@freebsd.org" Content-Type: text/plain; charset=UTF-8 X-BeenThere: svn-src-all@freebsd.org X-Mailman-Version: 2.1.22 Precedence: list List-Id: "SVN commit messages for the entire src tree \(except for " user" and " projects" \)" List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Sun, 29 May 2016 16:48:20 -0000 On Sun, May 29, 2016 at 4:41 AM, Ed Schouten wrote: > Author: ed > Date: Sun May 29 10:41:27 2016 > New Revision: 300952 > URL: https://svnweb.freebsd.org/changeset/base/300952 > > Log: > Invoke the dirname() function in a POSIX compliant way. > > POSIX requires that the argument of dirname() is of type "char *". In > other words, the input buffer can be modified by the function to store > the directory name. > > Pull a copy of the string before calling dirname(). We don't care about > freeing up the memory afterwards, as this is done at the very bottom of > main(), right before the program terminates. > > Reviewed by: bapt > Differential Revision: https://reviews.freebsd.org/D6628 > > Modified: > head/usr.sbin/services_mkdb/services_mkdb.c > > Modified: head/usr.sbin/services_mkdb/services_mkdb.c > ============================================================================== > --- head/usr.sbin/services_mkdb/services_mkdb.c Sun May 29 07:39:56 2016 (r300951) > +++ head/usr.sbin/services_mkdb/services_mkdb.c Sun May 29 10:41:27 2016 (r300952) > @@ -92,7 +92,7 @@ main(int argc, char *argv[]) > size_t cnt = 0; > StringList *sl, ***svc; > size_t port, proto; > - char *dbname_dir; > + char *dbname_dir, *dbname_dirbuf; > int dbname_dir_fd = -1; > > setprogname(argv[0]); > @@ -172,7 +172,8 @@ main(int argc, char *argv[]) > * fsync() to the directory where file lies > */ > if (rename(tname, dbname) == -1 || > - (dbname_dir = dirname(dbname)) == NULL || > + (dbname_dirbuf = strdup(dbname)) == NULL || > + (dbname_dir = dirname(dbname_dirbuf)) == NULL || > (dbname_dir_fd = open(dbname_dir, O_RDONLY|O_DIRECTORY)) == -1 || > fsync(dbname_dir_fd) != 0) { > if (dbname_dir_fd != -1) > Even though the program is about to exit, it's worth freeing the memory just to make Coverity shut up. -Alan