From: Wolfgang Denk Date: Fri, 30 Sep 2005 16:03:53 GMT Subject: Destructive side-effect of "cg-status" Message-ID: <20050930160353.F025C352B7B@atlas.denx.de> So far I thought "cg-status" is a harmless command which just displays some status information. It ain't so. One of our engineers reported a corrupted repository after I ran "cg-status" in his directory: $ cg-status Heads: >master 805f93e4ca96d0c0cb2d2f9532d9666b22961e88 R origin 805f93e4ca96d0c0cb2d2f9532d9666b22961e88 error: open failed fatal: cache corrupted error: open failed ? COPYING ? CREDITS ? Documentation/00-INDEX ? Documentation/BUG-HUNTING ... error: open failed read_cache: Permission denied ... error: open failed read_cache: Permission denied ... As mentioned before, all I did was running "cg-status" in his directory. Here is what happens: Before: -> rpm -q cogito cogito-0.15.1-1 -> id uid=500(wd) gid=500(wd) groups=200(gitmaster),400(denx),500(wd) -> umask 0002 -> ls -ld .git drwxrwxrwx 6 sr sr 80 Sep 30 17:49 .git -> ls -l .git/index -rw-r--r-- 1 sr sr 1728032 Sep 30 17:17 .git/index Then: -> cg-status Heads: >master 805f93e4ca96d0c0cb2d2f9532d9666b22961e88 R origin 805f93e4ca96d0c0cb2d2f9532d9666b22961e88 M arch/ppc/configs/bubinga_defconfig M arch/ppc/configs/walnut_defconfig -> ls -l .git/index -rw------- 1 wd wd 1728032 Sep 30 17:49 .git/index ^^^^^^^^^^ ^^^^^ That means, that "cg-status" actually *rewrote* .git/index, with me (wd) as new owner, and - ignoring my umask - with permissions that prevent the original owner (sr) to access the file! Arghhhh!!! Best regards, Wolfgang Denk -- Software Engineering: Embedded and Realtime Systems, Embedded Linux Phone: (+49)-8142-66989-10 Fax: (+49)-8142-66989-80 Email: wd@denx.de Generally speaking, there are other ways to accomplish whatever it is that you think you need ... - Doug Gwyn