tramp-devel
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Re: tramp to remote windows machine with cygwin openSSH


From: Jürgen Hötzel
Subject: Re: tramp to remote windows machine with cygwin openSSH
Date: Tue, 8 May 2012 17:15:16 +0200

2012/5/8 Michael Albinus <address@hidden>
Here we have the problem. For "/cygdrive/c", stat returns strange values
for the %u and %g fields (uid and gid): 4294967295. In your Emacs
stanza, I suspect this is out of integer range, which is guaranteed only
for -2**29 to 2**29 - 1 (-536870912 to 536870911).

If a Windows User/Group is not present in etc/{passwd,group} it's id is mapped to -1 = 4294967295
Maybe your /etc/{passwd,group} needs to be updated using mkpasswd/mkgroup

Anyway: This could also occur on a GNU/Linux system, when using 32bit UIDs: 

"sudo chown 4294967294 test"

One possible fix could be the following patch (line numbers might vary):

--8<---------------cut here---------------start------------->8---
*** /home/albinus/src/tramp-2-1-stable/lisp/tramp.el.~2.814.2.18~
--- /home/albinus/src/tramp-2-1-stable/lisp/tramp.el
***************
*** 2946,2953 ****
     (tramp-get-test-command vec)
     (tramp-shell-quote-argument localname)
     (tramp-get-remote-stat vec)
!     (if (eq id-format 'integer) "%u" "\"%U\"")
!     (if (eq id-format 'integer) "%g" "\"%G\"")
     (tramp-shell-quote-argument localname))))

 (defun tramp-handle-set-visited-file-modtime (&optional time-list)
--- 2946,2953 ----
     (tramp-get-test-command vec)
     (tramp-shell-quote-argument localname)
     (tramp-get-remote-stat vec)
!     (if (eq id-format 'integer) "%ue0" "\"%U\"")
!     (if (eq id-format 'integer) "%ge0" "\"%G\"")

The use of floats instead of 29bit integers fixes the issue. Thanks

Jürgen 

reply via email to

[Prev in Thread] Current Thread [Next in Thread]