From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: (qmail 43801 invoked by alias); 7 Dec 2016 21:03:45 -0000 Mailing-List: contact cygwin-help@cygwin.com; run by ezmlm Precedence: bulk List-Id: List-Subscribe: List-Archive: List-Post: List-Help: , Sender: cygwin-owner@cygwin.com Mail-Followup-To: cygwin@cygwin.com Received: (qmail 43785 invoked by uid 89); 7 Dec 2016 21:03:45 -0000 Authentication-Results: sourceware.org; auth=none X-Virus-Found: No X-Spam-SWARE-Status: No, score=-1.6 required=5.0 tests=AWL,BAYES_00,FREEMAIL_FROM,RCVD_IN_DNSWL_NONE,SPF_PASS autolearn=ham version=3.3.2 spammy=sk:dipakga, dipakgaigole@gmail.com, U*dipakgaigole, dipakgaigolegmailcom X-HELO: mail-qt0-f177.google.com Received: from mail-qt0-f177.google.com (HELO mail-qt0-f177.google.com) (209.85.216.177) by sourceware.org (qpsmtpd/0.93/v0.84-503-g423c35a) with ESMTP; Wed, 07 Dec 2016 21:03:43 +0000 Received: by mail-qt0-f177.google.com with SMTP id w33so392168878qtc.3 for ; Wed, 07 Dec 2016 13:03:43 -0800 (PST) X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20130820; h=x-gm-message-state:mime-version:in-reply-to:references:from:date :message-id:subject:to; bh=4ThVpoxg0LIcmZESOWYmXLhnes1O/iDnA47LnUWD9fw=; b=eue+WuU6r7VhDJ2OaA70/jMabK18f8blr8/rRkgUrEfNWvX61FTvG6F93+C1VnWgGY HAAlPSBetsj/JhyeC2Pw4RKMPW3zWoScLNVQ6X2Z5gbcTOMmX/rCvYyPt8aE+8jtbWrD YfVcyhKlGTsOl/kdVQgFT5kJKLyM+SBekw1bVx7xtknQVUV+u1CrM5ZE41xzi+Vj4Ifu L7Vvhs4IeKegbdGFkzWhT9MakR6ZDB1NtOj+HsLqX5FJ1zqREwl0EcDJRATv8kvb1uWe A21O6RzK3SjbqjayFdTo8aldQECIy7Ta132oCyfEsMW2VpA+85rY7y2XED/X6/2o4f3H hmVA== X-Gm-Message-State: AKaTC00zxTJll6F2MKNmCvEGm3SF3Y9Ur23HYnHhKvpoAnumI3uIdrpQrkGUQ23Y4FRkDZwFXiCfjEUVNDnUBg== X-Received: by 10.237.59.6 with SMTP id p6mr67925984qte.217.1481144621445; Wed, 07 Dec 2016 13:03:41 -0800 (PST) MIME-Version: 1.0 Received: by 10.140.25.171 with HTTP; Wed, 7 Dec 2016 13:03:41 -0800 (PST) In-Reply-To: References: From: Dipak Gaigole Date: Wed, 07 Dec 2016 21:03:00 -0000 Message-ID: Subject: Re: Problem with chdir and GetCurrentDirectory on Windows 2016 To: cygwin@cygwin.com Content-Type: text/plain; charset=UTF-8 X-IsSubscribed: yes X-SW-Source: 2016-12/txt/msg00068.txt.bz2 > GetCurrentDirectory failed with ERROR_INVALID_HANDLE. As a result the > buffer was not populated. What is in dirname[] is stack garbage. As per the documentation of GetCurrentDirectory(), "If the function succeeds, the return value specifies the number of characters that are written to the buffer, not including the terminating null character." So if I am not wrong, the return value 6 indicates the number of characters written to the buffer. Here is the output of the same program on my windows 7 system: Administrator@W-WIN7-56 /cygdrive/c/temp $ ./test_cwd.exe chdir (/cygdrive/c/Program Files) reuturned <0> GetCurrentDirectory returned , ret = <16> getcwd returned , ret = Administrator@W-WIN7-56 /cygdrive/c/temp $ On Thu, Dec 8, 2016 at 1:53 AM, Dipak Gaigole wrote: > Hello, > > I am facing a very strange problem with chdir and GetCurrentDirectory. > After calling chdir (), the call to GetCurrentDirectory () returns > wrong value. I tested this on Windows 7 and Windows 2016. It is > working fine on Windows 7 whereas wrong values are returned on Windows > 2016. I guess we should see the same behavior on Windows 10 (client > version of Windows 2016) as well. > > ######################################################################### > Administrator@windows2k16vika /cygdrive/c/src > $ cygcheck.exe -c cygwin > Cygwin Package Information > Package Version Status > cygwin 1.7.33-1 OK > > Administrator@windows2k16vika /cygdrive/c/src > $ uname -a > CYGWIN_NT-10.0-WOW6 windows2k16vika 1.7.33-2(0.280/5/3) 2014-11-13 > 15:45 i686 Cygwin > > Administrator@windows2k16vika /cygdrive/c/src > $ cat test_cwd.c > #include > #include > #include > > #define BUF_SIZE 512 > > int main() > { > int ret; > char *dir; > char dirname [BUF_SIZE]; > > dir = "/cygdrive/c/Program Files"; > ret = chdir (dir); > fprintf (stderr, "chdir (%s) reuturned <%d>\n", dir, ret); > > ret = GetCurrentDirectory(BUF_SIZE, dirname); > if (ret) > fprintf (stderr, "GetCurrentDirectory returned <%s>, ret = > <%d>\n", dirname, ret); > > dir = getcwd (dirname, BUF_SIZE); > fprintf (stderr, "getcwd returned <%s>, ret = <%s>\n", dirname, dir); > > return 0; > } > > Administrator@windows2k16vika /cygdrive/c/src > $ gcc -g -Wall -lKernel32 test_cwd.c -o test_cwd > > Administrator@windows2k16vika /cygdrive/c/src > $ ./test_cwd.exe > chdir (/cygdrive/c/Program Files) reuturned <0> > GetCurrentDirectory returned , ret = <6> > getcwd returned , ret = > > Administrator@windows2k16vika /cygdrive/c/src > $ > ######################################################################### > > Has anyone noticed such behavior on Windows 10 or 2016? Any > suggestions, pointers? > > Thanks, > Dipak -- Problem reports: http://cygwin.com/problems.html FAQ: http://cygwin.com/faq/ Documentation: http://cygwin.com/docs.html Unsubscribe info: http://cygwin.com/ml/#unsubscribe-simple