From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: (qmail 115068 invoked by alias); 1 Sep 2016 12:46:26 -0000 Mailing-List: contact cygwin-apps-cvs-help@sourceware.org; run by ezmlm Precedence: bulk List-Id: List-Subscribe: List-Post: List-Help: , Sender: cygwin-apps-cvs-owner@sourceware.org Received: (qmail 114598 invoked by uid 9078); 1 Sep 2016 12:46:25 -0000 Date: Thu, 01 Sep 2016 12:46:00 -0000 Message-ID: <20160901124625.114536.qmail@sourceware.org> From: corinna@sourceware.org To: cygwin-apps-cvs@sourceware.org Subject: [setup - the official Cygwin setup program used to install Cygwin and keep it up to date] branch master, updated. release_2.874-25-gf882d56 X-Git-Refname: refs/heads/master X-Git-Reftype: branch X-Git-Oldrev: 1c6add37cc0ea947a73b987cc4f4a477cc9cf858 X-Git-Newrev: f882d56e593fe2338e4eb7c444719c4e8697fd87 X-SW-Source: 2016-q3/txt/msg00019.txt.bz2 https://sourceware.org/git/gitweb.cgi?p=cygwin-apps/setup.git;h=f882d56e593fe2338e4eb7c444719c4e8697fd87 commit f882d56e593fe2338e4eb7c444719c4e8697fd87 Author: Corinna Vinschen Date: Thu Sep 1 14:46:21 2016 +0200 Fix invalid deleting of a local pointer in UserSettings::UserSettings Convert buf to a unique_ptr instead. Signed-off-by: Corinna Vinschen Diff: --- UserSettings.cc | 8 ++++---- 1 files changed, 4 insertions(+), 4 deletions(-) diff --git a/UserSettings.cc b/UserSettings.cc index dd50c52..f4917ec 100644 --- a/UserSettings.cc +++ b/UserSettings.cc @@ -13,6 +13,7 @@ #include #include #include +#include #include "UserSettings.h" #include "io_stream.h" #include "win32.h" @@ -92,15 +93,15 @@ UserSettings::UserSettings (std::string local_dir) return; size_t sz = f->get_size (); - char *buf = new char [sz + 2]; - ssize_t szread = f->read (buf, sz); + std::unique_ptr buf (new char [sz + 2]); + ssize_t szread = f->read (buf.get (), sz); delete f; if (szread > 0) { buf[szread] = '\0'; buf[szread + 1] = '\0'; - for (char *p = strtok (buf, "\n"); p; p = strtok (p, "\n")) + for (char *p = strtok (buf.get (), "\n"); p; p = strtok (p, "\n")) { char *eol = strchr (p, '\0'); char *thiskey = trim (p); @@ -131,7 +132,6 @@ UserSettings::UserSettings (std::string local_dir) set (thiskey, thisval); } } - delete buf; } unsigned int