delorie.com/archives/browse.cgi   search  
Mail Archives: cygwin/2019/10/07/16:52:35

X-Recipient: archive-cygwin AT delorie DOT com
DomainKey-Signature: a=rsa-sha1; c=nofws; d=sourceware.org; h=list-id
:list-unsubscribe:list-subscribe:list-archive:list-post
:list-help:sender:date:from:reply-to:to:cc:message-id:subject
:mime-version:content-type:content-transfer-encoding; q=dns; s=
default; b=rZJzY8ViOMaBOaV8DdlqGrW1EqBdA62lNPyzlY1j/Ee0+aXLuqgtM
ohdp1j3AIhLWQSVQO0rdwAvdOlEHlVrTHwgWgE3GvmeZbmfbP1MAUiO7wn07L8P5
lWXrDTFk+s9jEnWD3wM1QWQ6ye3OWLNMj2h1po6OLjX+36DbwSdsLM=
DKIM-Signature: v=1; a=rsa-sha1; c=relaxed; d=sourceware.org; h=list-id
:list-unsubscribe:list-subscribe:list-archive:list-post
:list-help:sender:date:from:reply-to:to:cc:message-id:subject
:mime-version:content-type:content-transfer-encoding; s=default;
bh=L9BJdg8uUqs2n834t/EXzSNUasE=; b=PpXL+raA6aErBfToV7cNT6HbTcob
pofERzXFI5aS/LZuhbvj4Wu71/8UE6zB0yPE0fazIf7QmOQ332AtV6Q3N6HugnO1
wjF6GSf9teQ26DjM0msvt7Oh6sloStYHeNci3Ye+ZF9K6Bc5y4/sRlc42ANu39+c
3IJXateKepWeIJ8=
Mailing-List: contact cygwin-help AT cygwin DOT com; run by ezmlm
List-Id: <cygwin.cygwin.com>
List-Subscribe: <mailto:cygwin-subscribe AT cygwin DOT com>
List-Archive: <http://sourceware.org/ml/cygwin/>
List-Post: <mailto:cygwin AT cygwin DOT com>
List-Help: <mailto:cygwin-help AT cygwin DOT com>, <http://sourceware.org/ml/#faqs>
Sender: cygwin-owner AT cygwin DOT com
Mail-Followup-To: cygwin AT cygwin DOT com
Delivered-To: mailing list cygwin AT cygwin DOT com
Authentication-Results: sourceware.org; auth=none
X-Spam-SWARE-Status: No, score=-0.7 required=5.0 tests=AWL,BAYES_00,KAM_ASCII_DIVIDERS,RCVD_IN_RP_RNBL,SPF_PASS autolearn=no version=3.3.1 spammy=H*F:D*dk
X-HELO: outgoing-yousee-2.gl-mut-gbl.as8677.net
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=tdcadsl.dk; s=sela; t=1570481495; bh=cF8omoWnqgBKlswEmLf8o5r0GLj44rNWM3Y94obpcjE=; h=Date:From:To:Cc:Message-ID:Subject:MIME-Version:Content-Type: Content-Transfer-Encoding; b=nE3vzq4hSMS+qlxfk5L2IY1UWPjZOJoJfsDeEzFZu6Zms8ZX3P21MPqWHbUhnIgp9 Nyxg2gGTQDx2EJtOEijCZf6G/qjoh8y2cgVFEwpgQcIAuyz7Nvbe1W3rxFvzwqNKhl 6W+FV+W+HOr0qSO89KjQEzFZsWF6CIIZTRYF2wGPIfNgLL8ledrIERcMGMlNbRypOf bPFXaXA3sMr8QyMnnasq6UHIW31LYd5B8fdpz4zHTF2NkpVSkHY1oEBXWPZJUNVtr0 NWICHmT+UzobG8B+O43lIf5rpZX8sEE0sJIxhLatt4upm0AJ7eGgNL5lyFI/Oif82I piTRG7joUWFBg==
Date: Mon, 7 Oct 2019 22:51:35 +0200 (CEST)
From: "donpedro.tdcadsl.dk via cygwin" <cygwin AT cygwin DOT com>
Reply-To: donpedro AT tdcadsl DOT dk
To: cygwin AT cygwin DOT com
Cc: pdtychsen DOT ext AT gn DOT com
Message-ID: <1549599310.1980812.1570481495155.JavaMail.zimbra@tdcadsl.dk>
Subject: execvp* and spawnvp* react differently to same PATH environment variable
MIME-Version: 1.0
X-yse-mailing: LEGIT
X-yse-spamcause: OK, (0)(0000)gggruggvucftvghtrhhoucdtuddrgedufedrheejgddugedtucetufdoteggodetrfdotffvucfrrhhofhhilhgvmecuvfffvedpggftfgfpufgfuefuveftkfeugfdpqfgfvfenuceurghilhhouhhtmecufedttdenucenucfjughrpeffhffvkffugggtgfhithesthejtgdttddtjeenucfhrhhomhepughonhhpvggurhhosehtuggtrggushhlrdgukhenucfkphepuddtrdelkedrleekrdehtddpuddtrddutddtrddutddurdegudenucfrrghrrghmpehhvghlohepmhihshgvsgdtuddufedrshihshdrmhgvshhhtghorhgvrdhnvghtpdhinhgvthepuddtrdelkedrleekrdehtddpmhgrihhlfhhrohhmpeguohhnphgvughrohesthgutggrughslhdrughkpdhrtghpthhtoheptgihghifihhnsegthihgfihinhdrtghomhdprhgtphhtthhopehpughthigthhhsvghnrdgvgihtsehgnhdrtghomhenucevlhhushhtvghrufhiiigvpedt
X-IsSubscribed: yes

Hi all, 

While working on something i noticed that execvp* and spawnvp* behave differently with regards to $PATH, which i think is not correct. 

----------------------------------------------

1) The execvp* functions are called like this: 

return spawnve ( _P_OVERLAY | _P_PATH_TYPE_EXEC , 
   find_exec ( file , buf , "PATH" , FE_NNF ) ? : "" , 
   argv , envp );

This calls find_exec() with FE_NNF, which causes the path to be NULL if not found in $PATH.

This later causes cygwin to fail correctly if the program is not in $PATH.

----------------------------------------------

2) The spawnvp* functions are called like this: 

return spawnve (mode | _P_PATH_TYPE_EXEC, find_exec (file, buf), argv, cur_environ ());

This does _not_ calls find_exec() with FE_NNF which causes the path to be the posix form, as it is not found in path.

This later causes cygwin to find the program even though it was not in $PATH which seems wrong.

----------------------------------------------

This seems like a bug in spawnvp* functions unless i am missing something? 

Any thoughts?

Thanks,

/pedro







--
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

- Raw text -


  webmaster     delorie software   privacy  
  Copyright © 2019   by DJ Delorie     Updated Jul 2019