delorie.com/archives/browse.cgi   search  
Mail Archives: cygwin/2011/04/07/15:47:57

X-Recipient: archive-cygwin AT delorie DOT com
X-SWARE-Spam-Status: No, hits=0.7 required=5.0 tests=BAYES_50,DKIM_SIGNED,DKIM_VALID,DKIM_VALID_AU,FREEMAIL_FROM,RCVD_IN_DNSWL_NONE,RFC_ABUSE_POST,T_RP_MATCHES_RCVD,T_TO_NO_BRKTS_FREEMAIL
X-Spam-Check-By: sourceware.org
Message-ID: <711906.58368.qm@web25701.mail.ukl.yahoo.com>
Date: Thu, 7 Apr 2011 20:47:45 +0100 (BST)
From: Faisal Memon <faisalmemonuk AT yahoo DOT com>
Subject: cygwin git terminal won't capture password
To: cygwin AT cygwin DOT com
Cc: faisalmemonuk AT yahoo DOT com
MIME-Version: 1.0
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

Hi,

When you use git from cygwin to clone a repo which requires a password, you=
r=20
password when typed comes out as plain text, instead of being taken from yo=
ur=20
terminal silently (without echo).  The clone thus fails.
The same local machine, but using linux command line shows the same repo=20
working; it queries for password against the terminal session properly.

Good example using linux using strace to show system calls:
faisal AT diamond:~/Desktop/0$ strace git clone=20
https://faimemon AT collab DOT symbian DOT nokia DOT com/git/symbianapp.git
=2E
=2E
=2E
ioctl(2, SNDCTL_TMR_TIMEBASE or TCGETS, {B38400 opost isig icanon echo ...}=
) =3D 0
pipe([3, 4])                            =3D 0
pipe([5, 6])                            =3D 0
pipe([7, 8])                            =3D 0
clone(child_stack=3D0, flags=3DCLONE_CHILD_CLEARTID|CLONE_CHILD_SETTID|SIGC=
HLD,=20
child_tidptr=3D0xb75a6728) =3D 3040
close(8)                                =3D 0
read(7, "", 1)                          =3D 0
close(7)                                =3D 0
close(3)                                =3D 0
close(6)                                =3D 0
dup(5)                                  =3D 3
fcntl64(3, F_GETFL)                     =3D 0 (flags O_RDONLY)
fstat64(3, {st_mode=3DS_IFIFO|0600, st_size=3D0, ...}) =3D 0
mmap2(NULL, 4096, PROT_READ|PROT_WRITE, MAP_PRIVATE|MAP_ANONYMOUS, -1, 0) =
=3D=20
0xb773f000
_llseek(3, 0, 0xbfa15ed8, SEEK_CUR)     =3D -1 ESPIPE (Illegal seek)
write(4, "capabilities\n", 13)          =3D 13
read(3, Password:=20


We see it querying for password on the terminal in linux.

Contrasting that with cygwin which does not handle the password:
faisal AT ruby ~/temp/1
$ strace git clone https://faimemon AT collab DOT symbian DOT nokia DOT com/git/symbianapp=
.git
=2E
=2E
=2E
36297  236291 [main] git-remote-https 7156 time: 1302204053 =3D time (0)
12732  249023 [main] git-remote-https 7156 __set_errno: virtual int=20
fhandler_base::tcgetattr(termios*):1262 val 25
   18  249041 [main] git-remote-https 7156 __set_errno: virtual int=20
fhandler_base::tcsetattr(int, const termios*):1255 val 25
   74  249115 [main] git-remote-https 7156 __set_errno:=20
cygheap_fdget::cygheap_fdget(int, bool, bool):391 val 9
  261  249376 [main] git-remote-https 7156 fhandler_base::fstat: here
   17  249393 [main] git-remote-https 7156 time: 1302204053 =3D time (0)
   16  249409 [main] git-remote-https 7156 fstat64: 0 =3D fstat (0, 0x28C9C=
8)
   32  249441 [main] git-remote-https 7156 readv: readv (0, 0x28C9E4, 1)=20
blocking, sigcatchers 0
   27  249468 [main] git-remote-https 7156=20
fhandler_base_overlapped::wait_overlapped: normal read, 13 bytes
   16  249484 [main] git-remote-https 7156 fhandler_base::read: returning 1=
3,=20
binary mode
   14  249498 [main] git-remote-https 7156 readv: 13 =3D readv (0, 0x28C9E4=
, 1),=20
errno 9
  149  249647 [main] git-remote-https 7156 __set_errno:=20
cygheap_fdget::cygheap_fdget(int, bool, bool):391 val 9
  105  249752 [main] git-remote-https 7156 __set_errno: virtual int=20
fhandler_base::tcsetattr(int, const termios*):1255 val 25
  152  249904 [main] git-remote-https 7156 readv: readv (0, 0x28CAE4, 1)=20
blocking, sigcatchers 0

I am using git in cygwin version 1.7.4.  Cygwin is kicked off from the PuTT=
Y=20
program version 20101029
The same machine is running linux (via Virtual Box virtualisation), git ver=
sion=20
1.7.1

I've seen this problem reported elsewhere (stackoverflow) but no solution.

Any ideas what do to?

Thanks,
faisalmemonuk

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