Slashdot Mirror


Critical Git Security Vulnerability Announced

An anonymous reader writes Github has announced a security vulnerability and has encouraged users to update their Git clients as soon as possible. The blog post reads in part: "A critical Git security vulnerability has been announced today, affecting all versions of the official Git client and all related software that interacts with Git repositories, including GitHub for Windows and GitHub for Mac. Because this is a client-side only vulnerability, github.com and GitHub Enterprise are not directly affected. The vulnerability concerns Git and Git-compatible clients that access Git repositories in a case-insensitive or case-normalizing filesystem. An attacker can craft a malicious Git tree that will cause Git to overwrite its own .git/config file when cloning or checking out a repository, leading to arbitrary command execution in the client machine. Git clients running on OS X (HFS+) or any version of Microsoft Windows (NTFS, FAT) are exploitable through this vulnerability. Linux clients are not affected if they run in a case-sensitive filesystem....Updated versions of GitHub for Windows and GitHub for Mac are available for immediate download, and both contain the security fix on the Desktop application itself and on the bundled version of the Git command-line client."

148 comments

  1. I blame Microsoft by Anonymous Coward · · Score: 0, Insightful

    For creating case-insensitive file systems.

    What.

    The.

    Fuck.

    1. Re:I blame Microsoft by pushing-robot · · Score: 4, Insightful

      Yeah, what's next? Case-insensitive email addresses and domain names?

      Remember, the whole reason files have names and not sequences of random hex is for human legibility. For most applications, case sensitivity does not increase legibility.

      --
      How can I believe you when you tell me what I don't want to hear?
    2. Re:I blame Microsoft by BitZtream · · Score: 1

      Technically, NTFS isn't case insensitive.

      The APIs used take care of making it behave that way from an application perspective. NTFS is case preserving by default, and case sensitive in the data structures. Pretty much every API written to access NTFS drives would explode if confronted by a NTFS file system that had been used in a case sensitive manner, but thats another story.

      --
      Persistent Volume manager for Kubernetes - https://github.com/dwimsey/openshift-pvmanager
    3. Re:I blame Microsoft by Dutch+Gun · · Score: 4, Insightful

      Karma be damned...

      One could alternately argue: do you feel it's a good thing for something.dat and Something.dat to reference two different files? Because that would never confuse users, right? Shall we next talk about forward slash versus backslash in path separators, and how one is obviously much more logical and intuitive than the other? Or maybe we should get into line endings, or perhaps how there really shouldn't be any distinction between text and binary files? UTF-8 vs UTF-16?

      Newsflash: different operating systems have different conventions and different quirks. I'm going to take a wild-ass guess and predict that you believe the choices of your preferred OS are obviously the correct choices.

      --
      Irony: Agile development has too much intertia to be abandoned now.
    4. Re:I blame Microsoft by cbhacking · · Score: 5, Informative

      Actually, Microsoft themselves has an API for accessing NTFS drives in a case-sensitive manner, and I'm not talking about the native NT API or even the FILE_FLAG_POSIX_SEMANTICS Win32 file API flag. All versions of NT from 3.1 (the first) to 6.2 (Win8; it was removed from 8.1) have support for a POSIX operating environment - basically a full Unix-like OS running atop the NT kernel - and for proper Unix-like-ness it is case sensitive.

      Mind you, Win32 programs do tend to get confused by it all. For example, CMD's "dir" command will list both "test.txt" and "TEST.TXT" in the same directory, and even correctly note if they have different sizes or datestamps. However, the "type" command (print file contents) on *either* name (or some other-cased version of the name) will instead print the contents of one of the files - doesn't matter what you type, the OS will pick - and it will print it twice (once for each copy of the file with that name).

      I've been using the Interix (name of the Unix-like operating environment that runs in the NT POSIX subsystem, as reported by the uname command) build of git for years now. I should probably stop - the repo my package manager used has died, and I haven't bothered to set up a different package manager yet so my packages are outdated - but I am, humorously enough, not vulnerable to this particular attack even with that outdated version.

      --
      There's no place I could be, since I've found Serenity...
    5. Re:I blame Microsoft by phantomfive · · Score: 1

      This is like the big flamewar back from the days of VMS vs Unix.

      As for me, I'm happy that we've moved beyond 8+3.

      --
      "First they came for the slanderers and i said nothing."
    6. Re:I blame Microsoft by Anonymous Coward · · Score: 0

      This is why I like Linux. god and God are two entirely separate files.

    7. Re:I blame Microsoft by hawguy · · Score: 1

      For creating case-insensitive file systems.

      What.

      The.

      Fuck.

      IBM probably deserves some credit (or blame) as well, VM/CMS's filesystem may not have been case insensitive (since filenames were all upper case), but 3270 monitors had a switch that would toggle the screen display between mixed (or lower) case to all uppercase. You could still type in mixed case, but it was displayed as upper case.

    8. Re:I blame Microsoft by Anonymous Coward · · Score: 0

      rm -rf solves those files.

    9. Re:I blame Microsoft by Anonymous Coward · · Score: 0

      Aw someone get in the way of your snark?

      The way windows handles it by default can be a tad tricky if you are not aware of its quirks.

      NTFS is case sensitive
      http://support.microsoft.com/K...

      Win32 which is the API most people use can be either way (default not).

    10. Re:I blame Microsoft by jmccue · · Score: 1

      Yes, I remember those flame wars, but to me at the time it was UNIX against the world.

      But having worked for years on minis with files names consisting of 8 characters [A-Z] and 1 level 'directories', I kind of miss being forced to use short file names like DOS had. Multi-level directories are cool though.

      One pet peeve of mine is people creating file names like: "this is a book of my whole life and everything i know.doc'" drives me crazy :)

    11. Re:I blame Microsoft by GuldKalle · · Score: 1

      Are there any advantages to case-sensitive file systems?

      --
      What?
    12. Re:I blame Microsoft by by+(1706743) · · Score: 2

      I think there is a bit of a difference, though -- email addresses and domain names are typed by hand by the "average" (read: GUI-only) user on a day-to-day basis. That filenames were case-insensitive probably made a lot more sense back when the average user had to type at a command line -- in which case yeah, it probably was a better UX to have case-insensitivity (at least, from a casual user's perspective). In today's world of GUIs, case sensitivity might not increase legibility -- but it doesn't decrease legibility either, and is (I think?) a POSIX violation.

      Despite the fact that I think case-sensitivity is a Good Idea, I really like zsh's ability to tab-complete in a case-insensitive fashion :)

    13. Re:I blame Microsoft by Anonymous Coward · · Score: 0

      I know, right. Good solid 5.3 names like BOOK1.DOC up to BOOK9.DOC are all you'd ever need.

    14. Re:I blame Microsoft by by+(1706743) · · Score: 3, Insightful

      An AC above somewhere (comment: "polish != Polish") had a great comment: there's a difference between the filesystem and the UI. If a UI (file manager, shell, etc.) wants to reference two different files in a different fashion, fine. But the filesystem "should give back exactly what was put into it (both in terms of files and data)."

    15. Re:I blame Microsoft by spitzak · · Score: 1

      No. Two different byte strings should identify two different files (unless one or both of them are invalid byte streams). Anything else is introducing complexity into the filesystem and potential bugs and security violations, of which this it an excellent example. Sorry, but Unix has it right, and Microsoft and lots of other systems are *WRONG*.

    16. Re:I blame Microsoft by gweihir · · Score: 1

      MS chose case-aware (you can use case), but case-insensitive. In typical MS fashion, that is the absolute worst possible behavior that still somehow gets the job done. Case unaware, or case sensitive are both fine, but this stupidity cause countless problems.

      --
      Most ACs are not even worth the keystrokes to insult them. Be generically insulted by this and ignored otherwise.
    17. Re:I blame Microsoft by gweihir · · Score: 1

      Yes. There is only one possible name for addressing a file. For a case-aware, but case insensitive, you get up to 2^n variants for a name n letters long. And you _can_ have the same name with different capitalization in a directory as result of errors.

      --
      Most ACs are not even worth the keystrokes to insult them. Be generically insulted by this and ignored otherwise.
    18. Re:I blame Microsoft by reve_etrange · · Score: 1

      One pet peeve of mine is people creating file names like: "this is a book of my whole life and everything i know.doc'" drives me crazy :)

      You can definitely blame Microsoft for that one (default Word filename is first line of document).

      --
      .: Semper Absurda :.
    19. Re:I blame Microsoft by Anonymous Coward · · Score: 0

      If you're Nietzsche.

    20. Re:I blame Microsoft by sjames · · Score: 1

      SureItDoes.

      Of course, if not for the convention of all smalls in domain names we wouldn't get to snicker at expertsexchange.com

    21. Re:I blame Microsoft by Kjella · · Score: 1

      Yes. There is only one possible name for addressing a file. For a case-aware, but case insensitive, you get up to 2^n variants for a name n letters long. And you _can_ have the same name with different capitalization in a directory as result of errors.

      Funny, since Linux does everything it can to break a canonical name model with symlinks. In fact, you could mimic a case-insensitive system with 2^n symlinks like /foo/bar/COnFiG -> /foo/bar/config. And the captialization is the cause of errors in mixed environments:

      1) Create file on Windows called "Foobar.txt".
      2) Copy it to your Linux machine.
      3) Rename it to "FooBar.txt"
      4) Do lots of work on the text
      5) Copy it to your Linux machine
      6) Copy the Linux directory back to Windows.

      There's now a 50-50 chance that your work just got overwritten by old crap from step 2). Of course you might argue that Windows is the problem here since it wouldn't happen on two Linux systems, but then it wouldn't happen on two Windows systems either. They just don't play nice with each other.

      --
      Live today, because you never know what tomorrow brings
    22. Re: I blame Microsoft by Anonymous Coward · · Score: 0

      You could simply store all names as either upper or lowercase.

    23. Re: I blame Microsoft by Anonymous Coward · · Score: 0

      You could simply store all names as either upper or lowercase, however getting that to work with all of unicode might be hard.

    24. Re:I blame Microsoft by Anonymous Coward · · Score: 0

      Fuck you, you fucking unclefucker! It's people like you that make the world a worse place...

    25. Re:I blame Microsoft by amorsen · · Score: 1

      do you feel it's a good thing for something.dat and Something.dat to reference two different files? Because that would never confuse users, right?

      Case sensitivity is locale-dependent. If the user is bilingual, the file system then has to guess which language the user is thinking in when opening files.

      --
      Finally! A year of moderation! Ready for 2019?
    26. Re:I blame Microsoft by amorsen · · Score: 1

      They work for bilingual users. Case-insensitive file systems are limited to languages with identical case folding. The rest of us are screwed.

      --
      Finally! A year of moderation! Ready for 2019?
    27. Re:I blame Microsoft by Anonymous Coward · · Score: 0

      It is called case-preserving.

    28. Re:I blame Microsoft by gweihir · · Score: 1

      A symlink different from the file it points to. You are probably confusing it with a hardlink. At least get the basics right before you post something like this.

      --
      Most ACs are not even worth the keystrokes to insult them. Be generically insulted by this and ignored otherwise.
    29. Re:I blame Microsoft by jez9999 · · Score: 1

      Despite the fact that I think case-sensitivity is a Good Idea

      Why? I've never heard a single good argument in favour. With programming, you often want case sensitivity to distinguish between a public Name and a private name, but the same need isn't there with files, and case-sensitivity is just more likely to lead to mistakes. I say POSIX should be changed to prefer case-insensitive filesystems.

    30. Re:I blame Microsoft by mrprogrammerman · · Score: 1

      There's no separate api. All requests for file objects go through the NT Object Manager which then passes it to the NTFS file system driver. There's actually a flag (OBJ_CASE_INSENSITIVE) that you pass to the kernel if you don't want it to consider case. The Win32 api always pass this flag. You can support case sensitivity in your application by not passing this flag.

    31. Re:I blame Microsoft by Anonymous Coward · · Score: 0

      Karma be damned...

      One could alternately argue: do you feel it's a good thing for something.dat and Something.dat to reference two different files?

      Yes, it is a good thing that a file system treat "something" and "Something" differently. Just like it should treat "Polish metal" (geographic connotations) and "polish metal" (to make shiny) differently. It should not be the file system's job to interpret things. You put bits into a file system (both as data and metadata (e.g., filenames)) and you should get the exact bits out. Perhaps I want to "polish the Polish metal".

      The file system should treat treat different things differently. And "P" (0x50) is not the same as "p" (0x70).

      If you want to treat them the same, you should do that in your GUI code (or even in how ls(1) parses things, perhaps sorting "Polish" and "polish" in the same). But file systems should not be trying to read humans' minds. If you want to do that (which is a good thing for UX), do it at a higher layer than the VFS.

    32. Re:I blame Microsoft by Nick_Lowe712 · · Score: 1

      I have explained how all this works, with all the gory detail, in a blog post at http://www.nicklowe.org/2012/0...

    33. Re:I blame Microsoft by Waffle+Iron · · Score: 1

      Why stop there?

      They should also add a spell checker and auto-correct to the file system driver just to make sure people haven't made any mistakes.

    34. Re:I blame Microsoft by by+(1706743) · · Score: 1

      Filesystems can be used in myriad ways. What if I want to cache a bunch of files, with the filename being some sort of hash? In this case, it would make sense for a79t5qr.png to be a different file than A79t5qR.png .

      Personally, I prefer knowing that the filename I type is the filename the file gets. If I want to call something "finaldraft.txt" and "FINALdraft.txt," that should be up to me.

    35. Re:I blame Microsoft by david_thornley · · Score: 1

      How about because English isn't completely case-insensitive. Pronounce this: POLISH. You can't know you're doing it properly. Now, pronounce Polish and polish. No problem, right? Similarly, Danish is an adjective referring to a nationality, while danish is noun denoting a pastry. "bismarck" (lower-case) cannot be a nineteenth-century German politician, a WWII battleship, or a city in North Dakota. Christians worship God while Romans worshipped gods.

      --
      "When you have eliminated the unacceptable, whatever is left, however improbable, must be the truthiness" - Holmes
    36. Re:I blame Microsoft by david_thornley · · Score: 1

      As I understand it, in English a case-sensitive filesystem would have "fish" and "FISH" be the same, but that would be an error in a Turkish one. What's lower-case of "STRASSE"? Should the filename with the "ss" be the same as the one with the letter that looks like a beta? I used to be a fan of case-insensitivity, but I've come down on the side of preferring the system that actually works everywhere.

      --
      "When you have eliminated the unacceptable, whatever is left, however improbable, must be the truthiness" - Holmes
    37. Re:I blame Microsoft by jez9999 · · Score: 1

      Right, because it's a daily problem I have that I want to put files called Polish and polish in the same directory. And I can't think of any way to differentiate them other than capitals.

      What a dumb argument.

      By the way, what about when you can't distinguish them by capitals? What if I want a file about my new table in the same directory as my table of figures? What do I do then?

    38. Re:I blame Microsoft by cbhacking · · Score: 1

      Just because .NET APIs call down to Win32 APIs, which call down to NT APIs, doesn't mean that they aren't all different APIs. Same for the POSIX APIs (which, like Win32, chain to native NT APIs). The POSIX ones always specify OBJ_CASE_INSENSITIVE, the Win32 ones do if you specify FILE_FLAG_POSIX_SEMANTICS, and I don't even know if .NET supports enforcing case-sensitivity... but they are still separate APIs. Nobody in their right mind writes user-mode software against the native NT API unless they absolutely have to, and not only because it's prone to occasionally changing in non-backward-compatible ways.

      --
      There's no place I could be, since I've found Serenity...
    39. Re:I blame Microsoft by mrprogrammerman · · Score: 1

      The native NT API's don't actually change that much in breaking manner. Many ISVs, especially security software, rely on calling into the native API for stuff that isn't possible with Win32. Only recently has Microsoft gotten better at exposing much of that functionality. For instance if you had a handle to a thread and wanted to get the thread id, even though it's a very basic operation there was no way to do that before Windows Vista. Now there's GetThreadId.

    40. Re:I blame Microsoft by Anonymous Coward · · Score: 0

      Yes, that would be a good thing. All malware is the fault of stupid users, and they should not be coddled. A computer is a power tool, and just as you shouldn't give your toddler free reign with the table saw and drill press, you shouldn't give a moron free reign with a computer.

  2. Case insensitive file systems were a bug by Anonymous Coward · · Score: 0

    Case insensitive file systems were always a bug. They started back when DOS used a file system that used an encoding that simply didn't have lowercase letters. That they persisted into Windows was a bug that Microsoft never fixed.

    1. Re:Case insensitive file systems were a bug by Anonymous Coward · · Score: 0

      I dont know if its a bug, it makes navigation more simpler.

    2. Re:Case insensitive file systems were a bug by Anonymous Coward · · Score: 2

      It's another bit of pandering to the stupid. Rather than encourage people to go into the direction of sanity, the path of least resistance is to turn the bug into a feature. Microsoft and Apple are both guilty of that. Encouraging whitespace in file names is another indicator of this.

      I don't let Unix and descendants get off so lightly, either. While they have sanity w/r/t filename case and the use of slash as a path-element-separator character, they do allow allow not just blanks but also control characters as well as spaces in file names. While it is possible to make a case for such characters in names, I think possibilities for error and misuse far outweigh the advantages.

    3. Re:Case insensitive file systems were a bug by nedlohs · · Score: 1

      Obviously every character except for the path separator and the string terminator should be valid. Why should the file system restrict what character encoding I want to use for my names other than restrictions that simply make implementation easier.

    4. Re:Case insensitive file systems were a bug by aardvarkjoe · · Score: 4, Informative

      Obviously every character except for the path separator and the string terminator should be valid. Why should the file system restrict what character encoding I want to use for my names other than restrictions that simply make implementation easier.

      This article makes a pretty convincing case that we'd be better off with some restrictions on filenames. It's hard to argue the point that allowing certain characters in filenames causes more problems than it solves.

      --

      How can we continue to believe in a just universe and freedom to eat crackers if we have no ale?
    5. Re:Case insensitive file systems were a bug by reve_etrange · · Score: 1

      I think it's technically a misfeature - or maybe a wart. It was intentional...

      --
      .: Semper Absurda :.
    6. Re:Case insensitive file systems were a bug by Anonymous Coward · · Score: 0

      And which encoding is that, ASCII? Think again.

    7. Re:Case insensitive file systems were a bug by sjames · · Score: 1

      Because some characters have special significance to the shell. That includes * and ?. In the bad old days of dos, you could enter an arbitrary character code by holding Alt while entering the 3 digits on the keypad. Character 255 looked exactly like a space but was not equivalent. Imagine the confusion one could cause that way.

    8. Re:Case insensitive file systems were a bug by Loconut1389 · · Score: 1

      That was my favorite way of hiding things.

    9. Re:Case insensitive file systems were a bug by ThePhilips · · Score: 1

      I dont know if its a bug, it makes navigation more simpler.

      Any evidence to back up the claim?

      When 10+ years ago I was moving from Linux to Windows, the case-sensitve file system was one of the major risk factors.

      But even in the beginnng, I have encountered precisely zero problems with it. And I'm the type who works mostly on the terminal and should be directly impacted by the case-sensitive file names.

      The thing is, these days, nobody types the filenames manually: it is either click in GUI with the mouse or filename completion on the command line. And even if the filenames needs to be typed manually, literally everybody universally uses the lower case. (That even on Windows. And I have helped in past correct the case handling in several Windows applications so that they create files with consistent upper/lower case names. Because users were complaining that it is inconvenient and kind of fugly that sometimes output filenames are upper case, sometimes lower case.)

      As such, I consider case-insensitive file names to be a redundant feature.

      --
      All hope abandon ye who enter here.
    10. Re:Case insensitive file systems were a bug by Anonymous Coward · · Score: 0

      > It's hard to argue the point that allowing certain characters in filenames causes more problems than it solves.

      Except for the the massive class of bugs which get introduced because of all the special case handling for all the different systems which all behave slightly differently.

      Like this one.

      A quick glance at that article seems more like a compelling case for teaching people how to write shell scripts properly.

    11. Re:Case insensitive file systems were a bug by nedlohs · · Score: 1

      I don't find the case convincing at all.

    12. Re:Case insensitive file systems were a bug by nedlohs · · Score: 1

      so what?

      The file system is independent of the shell. My shell probably uses different special characters than yours too - ^ means something in mine for example.

      Adding complexity into the file system because people are idiots is silly. If you really need to you can wrap an idiot layer on top the file system after all.

    13. Re:Case insensitive file systems were a bug by Anonymous Coward · · Score: 0

      Yes, because having multiple files with the same names but different cases is sane...

    14. Re:Case insensitive file systems were a bug by smooth+wombat · · Score: 1

      the case-sensitve file system was one of the major risk factors.

      Don't worry, as XKCD shows, this is not an issue.

      --
      We will bankrupt ourselves in the vain search for absolute security. -- Dwight D. Eisenhower
    15. Re:Case insensitive file systems were a bug by Waffle+Iron · · Score: 1

      All the complexity you need to add is:

      if (ch <= '\x1f') {
              goto FAIL;
      }

      How hard is that?

    16. Re:Case insensitive file systems were a bug by sholden · · Score: 1

      How does that stop you using * and ? in a file name. How does that stop you using "Character 255" in a filename?

      It does of course stop you using utf8 filenames.

    17. Re:Case insensitive file systems were a bug by aardvarkjoe · · Score: 4, Insightful

      A quick glance at that article seems more like a compelling case for teaching people how to write shell scripts properly.

      If you read the article, you'll find that writing shell scripts to handle filenames containing every possible character "properly" is so difficult that virtually everyone gets it wrong. When something's been around for close to 40 years and still nobody can get it right, maybe it's time to admit that it's the tool that's broken.

      --

      How can we continue to believe in a just universe and freedom to eat crackers if we have no ale?
    18. Re:Case insensitive file systems were a bug by sjames · · Score: 1

      So you need to have some way to enter those characters when specifying a file name. Escap chars can handle some of that, but it really is best to not take chances where it can cause problems. For example, imagine a file named 'bobby; rm -rf /'

    19. Re:Case insensitive file systems were a bug by Anonymous Coward · · Score: 0

      arguably not using spaces would be pandering to a different kind of stupid. What, your scripts blow up when they meet a space or a newline? Learn2script then.

      Either way it's not really a problem with filenames, but with defaults of shells, which still perform word splitting at the drop of the hat whenever there is "" missing. This is a decades old legacy from the times that didn't have proper arrays and shit and the word splitting was the hack around it.

      Implicit splits with IFS and the concept of global IFS in the first place should be done away with. Explicit local splits and arrays should be used instead for everything and 90% bugs disappear right off the bat.
      IFS=. read oct1 oct2 oct3 oct4 "$ip" # bam, local change only for that command

    20. Re:Case insensitive file systems were a bug by Anonymous Coward · · Score: 0

      while i agree that shells need something like posix2.0 to kick their legacy ass into the unicode blessed 21st century, there is a 100% solid boilerplate that can be always used when dealing with troublesome filenames - while read with \0 delimiter.

      assuming bash and quoting all var names, in order of preference:
      1. native globs, including globstar ** for recursive action
      2. while IFS= read -rd $'\0' f; do echo "$f"; done < <( find -print0 | and other command(s) | working | with \0 delimited data )
      copy paste that shit whenever globs are not enough and stick to it.

      number 2. can be used to create a legit, easy to use array yielding itself for later use with eg for loops or param lists, if arr+=( "$f" ) is used.
      for f in "${arr[@]}"...
      some_command -a -b -c "${arr[@]}"
      bam, no more whitespace/newline/etc bullshit.

    21. Re:Case insensitive file systems were a bug by Anonymous Coward · · Score: 0

      If they're different cases, then they're not the same name.

    22. Re:Case insensitive file systems were a bug by Anonymous Coward · · Score: 0

      arguably not using spaces would be pandering to a different kind of stupid. What, your scripts blow up when they meet a space or a newline? Learn2script then.

      Arguably, the computer should adapt to the way people work, not the other way around.

      Spaces in filenames are a problem only because CLIs interpret spaces as token separators. When the Mac came out in 1984, that was not an issue because there was no CLI. There was no need for filename extensions either, and you could include slashes in the filename. It was a solved problem.

      Then Mac OS X came along and brought back the horror for the sake of compatibility with other systems... -shudder-

    23. Re:Case insensitive file systems were a bug by brianjfox · · Score: 1

      Obviously every character except for the path separator and the string terminator should be valid. Why should the file system restrict what character encoding I want to use for my names other than restrictions that simply make implementation easier.

      This article makes a pretty convincing case that we'd be better off with some restrictions on filenames. It's hard to argue the point that allowing certain characters in filenames causes more problems than it solves.

      Sorry - if the tools that we have for managing the labels that humans wish to place on their objects are lacking, we should fix the tools, not the labels. For example, I've named my dog "Crankshaft" - does that confuse mechanics? The only thing we humans have is the ability to manipulate symbols. I'd prefer to have no restrictions on the labels that I use, since they simply refer to objects.

    24. Re:Case insensitive file systems were a bug by aardvarkjoe · · Score: 1

      Sorry - if the tools that we have for managing the labels that humans wish to place on their objects are lacking, we should fix the tools, not the labels. For example, I've named my dog "Crankshaft" - does that confuse mechanics? The only thing we humans have is the ability to manipulate symbols. I'd prefer to have no restrictions on the labels that I use, since they simply refer to objects.

      It's a common problem in the programming field to make a virtue out of overgeneralization, even when it conflicts with other virtues, such as ease of use or security. What actual benefit do you get from allowing the inclusion of control characters in filenames? How does that benefit compare with the amount of pain and extra effort involved in dealing with those filenames?

      The other thing is that "fixing the tools" is a complete non-starter. You're talking about "fixing" a large subset -- possibly even a majority -- of programs on Unix systems, in a way that will be incompatible with existing tools. The elegance of putting some minor restrictions on filenames into the filesystem is that it works with virtually all existing user-level software, with no changes to that software required.

      --

      How can we continue to believe in a just universe and freedom to eat crackers if we have no ale?
    25. Re:Case insensitive file systems were a bug by sholden · · Score: 1

      / is one of the two characters I said were fine to not allow, due to implementation simplicity. So there's no need to imagine such a file name.

      But I have no problem with ";" in file names (or "|", or "&", etc). I don't interpret file names as shell commands since I put the commands in the text of the shell script files not in the file names.

    26. Re:Case insensitive file systems were a bug by sjames · · Score: 1

      It doesn't matter what YOU interpret as a file name vs command, it matters what the shell considers a filename vs a command. Nit pick the example all you like, but if ; is a valid char, tears will result. I don't see where bobby;rm -rf * would be that much better. It's begging to be exploited.

  3. Case-insensitive file systems... by Anonymous Coward · · Score: 0, Interesting

    ...are the dumbest thing ever.

    1. Re: Case-insensitive file systems... by Anonymous Coward · · Score: 0

      They've been around for ages, you case insensitive clod!

    2. Re:Case-insensitive file systems... by marcello_dl · · Score: 1, Troll

      I boot linux from a vfat formatted USB stick, you case insensitive clod.

      --
      ---- MISSING MISCELLANEOUS DATA SEGMENT --- [sigdash] trolololol
    3. Re: Case-insensitive file systems... by david_thornley · · Score: 1

      So has COBOL.

      --
      "When you have eliminated the unacceptable, whatever is left, however improbable, must be the truthiness" - Holmes
  4. Only bad for pulling untrusted content. by Anonymous Coward · · Score: 4, Informative

    This is only an issue if you pull untrusted content, and are on a case insensitive file system. This is not typical git usage, but its a good thing to know about.

    If you do thing like pull from a repo, and run the build scrips without reading them first, you already had worse security problems, and there is nothing worse about this. It seems like the main fear would be (case insensitive) servers doing automated pulls and such getting compromised by hostile repo.

    Servers that pull from lots of git repos could spread such attacks virus style, but I really don't think many such networks of auto git pulling servers exist. More likely is a specific targeted attack against some servers, but I expect most run on case sensitive file systems.

    1. Re:Only bad for pulling untrusted content. by Anonymous Coward · · Score: 0

      > This is only an issue if you pull untrusted content

      No content from a public repo should be "trusted" without a signed and verified GPG tag. There are too many faked SSL keys, stolen keys, and internal proxies with local keys setup, and just plain stolen root SSL signature authority keys to trust any standard HTTPS reposiritory. They're all vulnerable to subtle man-in-tme-middle abuse.

      This is a big problem with git.centos.org now being the main source code repository for Red Hat's new releases. The system is not securable, especially if anyone starts pulling content from clones or via rsync mirrors where the CentOS SSL keys are unavailable.

    2. Re:Only bad for pulling untrusted content. by digitig · · Score: 1

      I agree that no content from a public repo can be trusted, but at the moment I only use Git to pull from trusted private repos (which is probably a significant use case for people who are using Git in the workplace). That means yes, I need to update my Git client, but I don't need to sweat that I might already have been compromised by this vulnerability.

      --
      Quidnam Latine loqui modo coepi?
  5. Unrelated to Github by Anonymous Coward · · Score: 5, Informative

    I'm puzzled that Github is stated as the main actor here. They are just
    broadcasting the official announcement from the git mailing list. They are not
    involved in the initial discovery, subsequent investigations or fixes. How come
    this post end up giving them most of the credit? Have people already
    forgot that Git and Github are different entities?

    1. Re:Unrelated to Github by Anonymous Coward · · Score: 4, Interesting

      The headline is wrong too. This isn't a Git vulnerability. This is a flaw in Windows and Mac OS X where they fail to differentiate between two similar but different file names. That Git has a workaround for their broken behavior is good in the short run, but the correct solution would be to fix Windows and Mac OS X so that they can tell the difference between upper and lowercase letters.

    2. Re:Unrelated to Github by Anonymous Coward · · Score: 1, Informative

      Have people already
      forgot that Git and Github are different entities?

      Yes. GitHub is where all the git repositories are. Not only that, Github is where all the coders are. If you don't have a GitHub profile, you don't even exist.

    3. Re:Unrelated to Github by Anonymous Coward · · Score: 0, Troll

      Do you even comprehend that there are computers in this world that aren't exactly the same as the Linux rig in your basement, narrow-minded nerd?

    4. Re:Unrelated to Github by Anonymous Coward · · Score: 0, Interesting

      You are clear that there's a standard for what makes a "computer file system interface" (it's part of POSIX) and it's quite clear that file systems should be case sensitive. So, yes, this is a Windows and Mac OS X bug, and not a Git bug. If they were proper operating systems, this wouldn't be an issue.

    5. Re:Unrelated to Github by Anonymous Coward · · Score: 0

      Here's a secret:

      Regular users *DO NOT CARE* about case insensitivity. They don't even notice it.

      Why? Because they name a file once and then just open it through the UI or through the "recently opened documents" menu. They don't even know the file system is case insensitive.

      There's absolutely no reason for file systems to be case insensitive, and POSIX demands that they should be case sensitive. Case insensitivity is a bug and a standards violation.

    6. Re:Unrelated to Github by Anonymous Coward · · Score: 0

      The official announcement is here: http://git-blame.blogspot.com/

    7. Re:Unrelated to Github by Shinobi · · Score: 1

      POSIX is, if we are to be really strict, about interaction between Unix variants. So, while it can certainly argued that it's a fault with OS/X, it's not a fault with Windows, since it's not a Unix OS. And hilariously, I know of no Linux distro that is fully POSIX compliant for that matter, nor is FreeBSD or OpenBSD etc.

    8. Re: Unrelated to Github by forand · · Score: 4, Informative

      You can run OS X on an encrypted case-sensitive file system without any issue. This is nota bug of windows and Mac but a bug of git allowing its own files to be overwriten because it thinks it knows better than the file system what a file is named.

    9. Re:Unrelated to Github by Anonymous Coward · · Score: 0

      Have you forgotten the "sarcasm" tags?

    10. Re:Unrelated to Github by KingMotley · · Score: 5, Funny

      WTF is Git? Is that a new fork of git? Cause I can't tell what you are talking about because you put the wrong case.

    11. Re: Unrelated to Github by Anonymous Coward · · Score: 0

      Last time I did a fresh install on my MBPro, I was going to use a case sensitive file system, but ran across this:
      http://helpx.adobe.com/creative-suite/kb/error-case-sensitive-drives-supported.html
      Not Apple's fault, but forcing my hand nonetheless.

    12. Re: Unrelated to Github by Anonymous Coward · · Score: 0

      Then how do you know it's wrong?

    13. Re:Unrelated to Github by spitzak · · Score: 0

      All modern systems are capable of storing different strings for filenames in different cases. So no, Linux has it right and Windows has it wrong. Sorry to burst your bubble, but you are simply Wrong, with a capital W.

    14. Re:Unrelated to Github by spitzak · · Score: 1

      No, stop being an idiot.

      "regular users" click on files in a list or 2-d grid. They would not even notice if the filesystem allowed more than one file with the same name, and the certainly do not give a damn about case insensitivity. Even if they type at a terminal they use filename-completion and do not care either.

      It is also clear that it has nothing to do with user-friendliness or they would map more common errors, such as multiple spaces to single ones, removing leading and trailing whitespace, or mapping equivalent unicode to the same files. They don't do this because they realize that such complex details of the encoding do not belong in the file system api.

      Case-insensitivity is a throwback to ancient ASCII-only systems. If you live in the stone age you may think it is a good idea. If you have been exposed to it all your life you may think it is a good idea. But if you were actually intelligent you would know it is wrong.

    15. Re:Unrelated to Github by Anonymous Coward · · Score: 0

      It's not sarcasm when job listings say "must have something on GitHub" as a requirement.

    16. Re:Unrelated to Github by Anonymous Coward · · Score: 0

      Haha, except you're wrong: Git is the name of the project while git is the command line interface for Git. GitHub provides another UI for Git other than git.

      Check the man pages or even the website, they're pretty consistent on Git meaning the overall project and git meaning the command line tool. (Not 100%, but - fairly consistent.)

    17. Re:Unrelated to Github by fph+il+quozientatore · · Score: 2, Funny

      Please, that's GNU/git.

      --
      My first program:

      Hell Segmentation fault

    18. Re:Unrelated to Github by reve_etrange · · Score: 1

      All modern systems are capable of storing different strings for filenames in different cases

      Including Windows (with NTFS) - but the API used to access the filesystem normalizes everything. It leads to a lot of weird behavior...

      --
      .: Semper Absurda :.
    19. Re:Unrelated to Github by Kjella · · Score: 2

      Tag: NOTABUG and WONTFIX. Case aware filesystems so you can have normal names and not like AUTOEXEC.BAT and CONFIG.SYS from the DOS days is great, case sensitive file systems are a really bad idea. Is there any kind of sane situation where you'd like to have two files "Config" and "config" actually coexist that isn't just begging to be confused/abused/exploited? For a marginal performance optimization all POSIX systems have shitty usability. Why am I not surprised? I guess for a server it just doesn't matter, but for the desktop you should file this as a bug against Linux, not Windows and OS X.

      --
      Live today, because you never know what tomorrow brings
    20. Re:Unrelated to Github by Anonymous Coward · · Score: 0

      Actually Windows was once officially posix compliant.

    21. Re: Unrelated to Github by Anonymous Coward · · Score: 0

      You can run OS X on an encrypted case-sensitive file system without any issue.

      Really? The last time I installed OS X on a case-sensitive HFS and tried to enable the encryption, it actually balked that case-sensitive is not supported by the encryption feature.

      This was on 10.6 so things may have changed since. (10.6 is the newest version that runs on my Mac though.) Plenty of www hits for 'filevault case sensitive' though.

    22. Re:Unrelated to Github by suy · · Score: 1

      This is a flaw in Windows and Mac OS X where they fail to differentiate between two similar but different file names.

      Odd, I thought it was exactly the opposite. Linux doesn't interpret the names at all. Only '\0' and '/' (in C/C++ notation) are treated specially by Linux in what can be allowed as file name. The rest is just an array of bytes. Is Mac OS X or Windows the ones that try (and I said try, since I'm not sure they achieve it) to protect the user from security and confusion problems. Is not just case sensitivity, think of pre-composed characters, for example (distinguishing modified+character from character already modified). See the interesting conversation after a Git release, where several developers explain the problems on the normalization that Mac OS X does.

    23. Re:Unrelated to Github by Anonymous Coward · · Score: 0

      bullshit. This is how windows is written and like it or not, it is a feature. If Git is assuming a case sensitive file system, then it was written incorrectly for Windows, and it is a Git bug. You can't paper over your bugs in handling extremely well known behaviors by blaming it all on the underlying system.

    24. Re:Unrelated to Github by Anonymous Coward · · Score: 0

      You are incorrect, because I can guarantee my mom would end up with 5 folders with varying casing of 'Pictures' and would 'lose' some of her pictures until I 'found' them for her. You are blind if you thing "there's absolutely no reason for file systems to be case insensitive".

    25. Re:Unrelated to Github by Anonymous Coward · · Score: 0

      And you are a Dick with a capital D. God I'm tired of useless holy wars on inconsequential crap. This has been the way it has worked on windows for how many years now? And you are still going ape shit over it to defend Git and point some bug blame? I can guarantee it isn't going to change on windows as destroying years of apps that know this is how windows works just to 'fix' Git is silly.

    26. Re:Unrelated to Github by jeremyp · · Score: 2

      No it isn't.

      Both NTFS and HFS+ are file systems that are case insensitive and case preserving (by default). They work as designed. They have always worked that way as the people who ported git to those platforms should have known.

      Just because you don't like the way NTFSD and HFS+ work and it makes the programmer's job a little harder doesn't mean there is a bug.

      --
      All I want is a secure system where it's easy to do anything I want. Is that too much to ask ~~ Randall Munroe
    27. Re:Unrelated to Github by Nick_Lowe712 · · Score: 1

      You are wrong about NTFS: http://www.nicklowe.org/2012/0...

    28. Re:Unrelated to Github by Anonymous Coward · · Score: 0

      mmm... nougat...

    29. Re:Unrelated to Github by Anonymous Coward · · Score: 0

      Both NTFS and HFS+ are file systems that are case insensitive and case preserving (by default). They work as designed.

      And the design is clearly flawed. That's where the problem is. Yes, git will need to work around this flaw, but that doesn't mean it isn't a bug in Windows.

  6. Drink up! by Anonymous Coward · · Score: 0

    This article would make for a great drinking game - take a drink every time 'git' is mentioned.

    1. Re:Drink up! by Anonymous Coward · · Score: 0

      This article would make for a great drinking game - take a drink every time 'git' is mentioned.

      And die of alcohol poisoning?

  7. SVN? by TechyImmigrant · · Score: 1

    This isn't a specific git problem. It's a windows problem.

    I have source trees that I can't check out of an SVN server on windows because either the files get overwritten by different case filenames being aliased onto the same file or the file tree being to deep for windows.

    --
    I should use this sig to advertise my book ISBN-13 : 978-1501515132.
    1. Re:SVN? by Anonymous Coward · · Score: 0

      The issue here is not about name collisions. Failure to check out is an unfortunate and anoying bug., but the issue here is security. The protect againts check out into the .git/ directory failed to spot this collisions make the content of this sensitive directory (config for tools, hooks) open to alteration by the mere action of cloning/pull. This is a huge opening to arbitrary code execution.

      But it is not strickly restricted to Git, Mercurial was protected for half of these vulnerability since 2008. In november, they discovered the other half and warned the git people about it. There are probably a lot of similar tools vulnerable out there.

    2. Re:SVN? by jez9999 · · Score: 2

      I have source trees that I can't check out of an SVN server on windows because either the files get overwritten by different case filenames being aliased onto the same file

      Windows' behaviour makes sense. What doesn't make sense is having Readme and readme in the same directory. What possible reason could one have for differentiating 2 files on nothing but case?

    3. Re:SVN? by Anonymous Coward · · Score: 0

      This actually bit me once; I had without even thinking about it created a filename in lowercase, and a directory in CamelCase to hold resources used by that file, only to have a Windows user complain to me that they couldn't checkout the repository anymore because the file and the directory had the same name.

    4. Re:SVN? by TechyImmigrant · · Score: 1

      What possible reason could one have for differentiating 2 files on nothing but case?

      1) Programmer copies files from linux box to windows box of a certain age.
      2) Programmer makes some changes in windows land.
      3) Windows loses the case of the filenames
      4) Programmer copies files back to the same directory in linux land. Now there are two different files README and Readme.

      --
      I should use this sig to advertise my book ISBN-13 : 978-1501515132.
    5. Re:SVN? by Anonymous Coward · · Score: 0

      windows doesnt "lose" the case of the filename, dumbass - someone would have had to change it. Unless maybe its win3.1, in which case its the fucking devs fault for being a cheap shit.

    6. Re:SVN? by TechyImmigrant · · Score: 1

      windows doesnt "lose" the case of the filename, dumbass - someone would have had to change it. Unless maybe its win3.1, in which case its the fucking devs fault for being a cheap shit.

      That's why I said "windows of a certain age" dumbass.

      --
      I should use this sig to advertise my book ISBN-13 : 978-1501515132.
  8. OS X - Case sensitive and sensationalism by BitZtream · · Score: 0, Redundant

    No developer worth mentioning runs OS X with a case insensitive file system, and there are only 2 sets of Applications that don't work on case sensitive file systems on OS X:
    Steam - because ... well I have no fucking idea why steam doesn't support case sensitive volumes on OS X when it does so on Linux
    Adobe * - Because according to Adobe the Apple development toolchain doesn't work right and so they can't support case sensitivity ... regardless of the fact that everyone else for OS X except Adobe and Valve are capable of doing so OUT OF THE BOX WITH NO MODIFICATIONS TO THEIR SOFTWARE ... oh and Adobe has never presented an example of how the tools are broken illustrating their problem, they just keep saying 'broken tools! broken tools!'

    --
    Persistent Volume manager for Kubernetes - https://github.com/dwimsey/openshift-pvmanager
    1. Re:OS X - Case sensitive and sensationalism by Anonymous Coward · · Score: 0

      No developer worth mentioning runs OS X with a case insensitive file system, and

      no true Scotsman uses the No True Scotsman fallacy either.

    2. Re:OS X - Case sensitive and sensationalism by Antique+Geekmeister · · Score: 1

      Some developers use shared file systems on CIFS, whether Microsoft file server or Samba based. Some of us also inherit code that uses mixed case that maps to the same file name when made single case for legacy reasons: I can name several old UNIX programs that do not compile on CygWin without considerable revision of their source code, due to precisely this sort of issue.

  9. Mac OS X does support case-sensitive filesystems by mean+pun · · Score: 4, Informative

    Keep in mind that Mac OS X supports case-sensitive HFS+ filesystems, and has done so from Mac OS X 10.3 on (2003). All you have to do is create a partition with that particular flavour of HFS+.

    However, Adobe refuses to support case-sensitive filesystems. The Photoshop installer refuses to install on a case-sensitive filesystem, and Lightroom geolocation support is broken on case-sensitive filesystems, and always has been. Of course this limitation is not documented in their sales documentation, and the official fix is to reformat the partition...

  10. OS X - Case sensitive and sensationalism by Anonymous Coward · · Score: 0

    Adobe may be referring to a lack of a conversion tool to do the work for them. Seriously, do want Adobe's coders to be in charge of a task like that? 50 OS-crashing betas before they release a working version 5 years later.

  11. Re:Mac OS X does support case-sensitive filesystem by cbhacking · · Score: 1

    So does Windows, though you may confuse the Win32 API if you use it. NTFS is case-preserving and the native APIs are case-sensitive. Win32 functions can use FILE_FLAG_POSIX_SEMANTICS to require case-sensitivity, and Interix (Microsoft's POSIX-on-NT environment that runs in the Subsystem for Unix Applications or SUA) does so by default. I don't know of any way to make Win32 case-sensitive by default without doing some kind of crazy hooking of the relevant APIs or installing a filter driver to enforce it.

    --
    There's no place I could be, since I've found Serenity...
  12. polish != Polish by Anonymous Coward · · Score: 2, Interesting

    Yeah, what's next? Case-insensitive email addresses and domain names?

    Remember, the whole reason files have names and not sequences of random hex is for human legibility. For most applications, case sensitivity does not increase legibility.

    You are conflating two things that are (or should be) separate: the file system and the UI.

    The file system (paths and names) should be case sensitive. If I give the VFS a string of bits that represents a file's name (regardless of ASCII, Unicode, or EBCDIC) it should take those bits and store them as-is and give them back as-is with interpreting them.

    The UI (whether the GUI or maybe the CLI shell) could then make things easier for humans by treating "p" like "P", but the file system should treat them differently.

    There is a difference after all between "Polish metal" (geographic connotations) and "polish metal" (to make shiny). Or, as another example, the sentences "I helped my Uncle Jack off a horse" and "I helped my uncle jack off a horse". If you want to have your GUI/CLI treat them the same, go ahead (just set your $LC_COLLATE appropriately), but don't bake that shit into the VFS or FS.

    HFS+ switched from Unicode 2.1 to 3.2 decomposition/normalization a few years back which caused issues for git:

    http://marc.info/?l=git&m=120104708602274&w=3

    Really: a file system should give back exactly what was put into it (both in terms of files and data).

    1. Re:polish != Polish by Dutch+Gun · · Score: 4, Insightful

      You know, one could argue that case sensitivity in file systems actually demonstrates the difference between the *nix vs. Windows philosophies pretty well. Disclaimer: I'm a Windows guy, so let me know if I'm making unfair characterizations.

      *nix

      *nix is about power, flexibility, and user control. It favors command-line interaction through discrete commands, applications, and scripts. This makes it extremely suitable for power-users and administrators who are willing to invest the time to become proficient in using these tools. Visual interfaces are often built on top of these command-line actions, which can create a slightly disjointed experience for more casual users who don't understand what's happening under the hood or can't easily fall back to command-line use when needed.

      File system design: A file system should give back exactly what was put into. We should provide maximum flexibility and utility, even if it comes at the expensive of user-friendliness. The entire system should not be dumbed down to protect users who can't even figure out how to properly name their files, because there may be legitimate use cases for case sensitivity in file naming.

      Windows

      Windows is about user-friendliness. Visual tasks and interactions are emphasized over command-line actions. Applications are often extended through proprietary extensions or internal scripting rather than through command-line input and output. Because the system is build with visual interaction in mind first and foremost, users never have to interact with a command-line. This makes it easier for casual users to achieve faster results with less training, but can come at the cost of a more shallow understanding of their computers (e.g. if the visuals change significantly, users may become confused).

      Filesystem design: We can't really think of a reasonable use case in which a user would actually want to create two different files in the same directory that only differ by case. In reality, it would probably be the result of an mistake, and this may cause confusion for users. Therefore, we'll just restrict the functionality to eliminate that potential error. We're willing to write a bit of extra code to preserve case but to discard it when disambiguating files.

      --
      Irony: Agile development has too much intertia to be abandoned now.
    2. Re:polish != Polish by ianezz · · Score: 1

      There's a simplier answer to that: to be case-insensitive, you have to agree to a character encoding first, or write it down somewhere along with the name, and then you need additional code to deal with equivalences between characters in that encoding.

      To be case sensitive, *nix-style, is straightforward: you just aren't allowed to use byte 0x00 (C string terminator) and 0x2F ("/" in ASCII encoding) when encoding file names. Everything else is just fine, regardless of encoding (and endianess, just in case you used multibyte characters). To compare names you just compare sequence of bytes up to the C string terminator, and two are names are equal if their bytes are equal. End of it.

      This, and the fact that forcing down policies on file naming is a task better suited to user interfaces than kernels or system libraries (this way, an UI can always be as case-insensitive as it wants/needs to be).

    3. Re:polish != Polish by Anonymous Coward · · Score: 0

      Filesystem design: We can't really think of a reasonable use case in which a user would actually want to create two different files in the same directory that only differ by case.

      Yes, I can: a metal worker has "Polish metal.doc" which has a list of foundries in Poland; he also has "polish metal.doc" for buffing techniques and equipment.

      Ta-da.

      Seriously: polish and Polish are different words that should be treated differently. To quote a movie: English, motherfucker, do you know it?

    4. Re:polish != Polish by KiloByte · · Score: 1

      For a Turkish user, 'i' does not capitalize to 'I' but to dotted I (which anything but slashdot can display), while 'I' lowercases to undotted i. Now go make a checkout within the Turkish locale and try to read it within any other locale (typically, a different user or a different machine in the network).

      --
      The creatures outside looked from Alt-Right to Antifa; but already it was impossible to say which was which.
    5. Re:polish != Polish by Bonus+Mop · · Score: 1

      Every major operating system allows multiple representations of the same path. For example, \Windows and C:\Windows or "/home" and ".." from my home folder in Linux. Casing is just one way that OSX and Windows allow differences, but path length, relative folders, character encoding, etc. can all create many possible paths to the same file as well. Any time you take a path from an untrusted source and perform operations on the file system based on this, you have a potential security problem. One defense is to run some validations against the canonical form of that path. It didn't happen here.

      Not that converting to the canonical path is always straightforward, but I do think it's safe to say that this sort of problem is by no means specific to Windows or to casing in file paths. I am 100% sure that there are tools with similar security defects on *nix as well.

  13. regular users? by Anonymous Coward · · Score: 0

    I guess that makes you special?

  14. Only bad for pulling untrusted content. by Anonymous Coward · · Score: 0

    Except this can install hooks, and thus automated executable you will then run. You might not realize that pulling from a git repository could run arbitrary code.

  15. Initial capital by tepples · · Score: 1

    There is a difference after all between "Polish metal" (geographic connotations) and "polish metal" (to make shiny).

    Not at the beginning of a sentence.

    Or, as another example, the sentences "I helped my Uncle Jack off a horse" and "I helped my uncle jack off a horse".

    Or better yet, "I went to my Uncle Jack's stud farm and helped him jack off a horse". Not that there's anything wrong with that.

    1. Re:Initial capital by spike+hay · · Score: 1

      You wanna confine it to a handy though: http://en.wikipedia.org/wiki/Enumclaw_horse_sex_case

      --
      If you don't understand any of my sayings, come to me in private and I shall take you in my German mouth.
  16. Ha! by Anonymous Coward · · Score: 0

    I told you so.

    But whoever uses Windows or OSX deserves all the pain (s)he gets.

    1. Re:Ha! by Anonymous Coward · · Score: 0

      Said the bitter neckbeard from his Linux fortress.

  17. Re:Mac OS X does support case-sensitive filesystem by kthreadd · · Score: 2

    Keep in mind that Mac OS X supports case-sensitive HFS+ filesystems, and has done so from Mac OS X 10.3 on (2003). All you have to do is create a partition with that particular flavour of HFS+.

    Stepping back from HFS+ they've even supported case-sensitive file systems long before that since you could use UFS on OS X. Even OS 9 supported it but I don't remember if you could boot that from it.

    However, Adobe refuses to support case-sensitive filesystems. The Photoshop installer refuses to install on a case-sensitive filesystem, and Lightroom geolocation support is broken on case-sensitive filesystems, and always has been. Of course this limitation is not documented in their sales documentation, and the official fix is to reformat the partition...

    Yep. The Adobe suite won't even open files over NFS.

  18. Re:Mac OS X does support case-sensitive filesystem by Anonymous Coward · · Score: 0

    Adobe refuses to support case-sensitive filesystems

    I fail to see how a more feature-rich file system interferes with software installation, unless they depend on a bug, which then should probably be filed and fixed.

  19. Can't argue with that description... by Anonymous Coward · · Score: 0

    However additionally I would add: *nix is also about Pedantic-ness. It ensures filenames you write/access on *nix will work the same on all filesystems, or will error the same on all filesystems. The big example of this is *nix developed programs vs Windows developed ones. The *nix build system/includes will all have the proper case/name of files included and referenced in the EXACT SAME MANNER, whereas an application developed on Windows that is now being tested on *nix will oftentimes fail due to developer shortcomings (either a lazy inconsistent programmer, or a few dozen different developers for the same project) who have strewn the code with mismatched case #includes (IE HashFileSystem.h vs hashfilesystem.h vs hashFilesystem.H, with the actual file name being HASHFILESYSTEM.H) which the 'porting' developer will now have to go through and fix every referemce to, as well as potentially dozens to thousands of filenames (Not a big deal if you just need to lowercase all of them, and then lowercase all the include names, but potentially a HUGE deal if all the filenames use capitalized words/classes/source files, java-style.)

    This has been one of the biggest messes I've run into in regards to 'exclusive' windows developers, and even on open source projects, many of them are 'elitist' enough to consistent break cross platform compatibility through sloppy use of filenames, or trying to use a 'leet function call' that isn't actually cross platform compatible.

  20. Re:Mac OS X does support case-sensitive filesystem by Anonymous Coward · · Score: 0

    So the Flash installer on Windows is not the only badly implemented installer from Adobe? On Windows, the first thing it does is to delete the installer executable itself. And then it usually does a minute of installation, which fails with "something happened, please try again" -dialog. Of course, the retry starts with re-download, and perhaps on third attempt, one learns to make a copy of the installer before running it :-)

  21. Re:Mac OS X does support case-sensitive filesystem by mean+pun · · Score: 1

    I've never been able to make much sense of Adobe's stance in this, but as far as I can tell Adobe thinks that case-sensitive file systems are useless and if they wait long enough they will go away.

    I vaguely remember that one version of Photoshop failed on case-sensitive volumes, and there was a patch circulating that fixed about 9 filenames scattered throughout the code, and solved the problem. Rather than applying this patch, Adobe chose to block installation on case-sensitive volumes in modern versions.

  22. Shoudln't that be "GitHub" vuln NOT Git? by Anonymous Coward · · Score: 0

    It doesn't exist in ANYTHING other than GitHub's Windows and OSX clients that do provably **WRONG** things. It doesn't exist in other Git clients.

    Guys... /.'s editorial content has *REALLY* slid over time- this is just simply bad journalism, etc.

  23. Good article on file name design; thanks! ShellJS? by Paul+Fernhout · · Score: 1

    Enjoyed skimming through it, especially the point about character encoding and the value of utf-8. Many arguments for name restrictions are because it would make shell commands and scripts easier to write correctly. That suggests to me the bigger issue is the shell.

    As the computer language Forth shows, there does not have to be an obvious line between a programming language and a command line. It's unfortunate our systems generally have multiple languages with different conventions. What might be better is a good language with levels of parsing, sort of like the difference between JSON and JavaScript, or HTML/CSS and JavaScript, where some levels are not intended to have executable code and the system knows that. Anyway, just a seed of an idea.

    Just to try to grow it a bit, imagine if (shudder, as I prefer Smalltalk syntax) we used JavaScript as a "shell" syntax. When you wanted to delete a file, you might enter:

    $ File.remove(["force"], "file name with spaces or not");

    instead of:

    $ rm -f file\ name\ with\ spaces\ or\ not

    Actually, I prefer the JavaScript version. :-)

    Because JavaScript is so flexible, you could do in some JavaScript shell profile:

    var rm = File.remove;
    var rmf = rm.bind(["force"]);

    Then, with assumed semicolons you could write:

    $ rmf("file name with spaces or not")

    That seems much clearer to me than the conventional shell script notation.

    Commands could return JavaScript objects for results, displayed as JSON. So:

    $ File.list()

    {"test1.js", "test2.js"}

    $ File.list(["long"])

    {".": ["drwxr-xr-x+", "pdfernhout", "staff ", 2822, "2014-12-03Z08:14"],
    "..": ["drwxr-xr-x+", "pdfernhout", "staff ", 2822, "2014-12-03Z08:14"],
    "test1.js", ["drwxr-xr-x+", "pdfernhout", "staff ", "1234", "2014-12-03Z08:14"],
    "test2.js", ["drwxr-xr-x+", "pdfernhout", "staff ", "1234", "2014-12-03Z08:14"],
    "-rf", ["drwxr-xr-x+", "pdfernhout", "staff ", "1234", "2014-12-03Z08:14"],
    "metacharacter & ||||| weirdness!!!! | rm -rf /*", ["drwxr-xr-x+", "pdfernhout", "staff ", "1234", "2014-12-03Z08:14"]}

    $ rm("metacharacter & ||||| weirdness!!!! | rm -rf /*")
    $ rm("-rf")

    I'm not sure if there would be other stiff like pipes that might trip you up, especially with JavaScript's syntax and single-tasking assumptions. Probably the results of these functions might have to be some form of Deferreds or something like that?

    As a first cut at pipes, assuming the result of a previous operation as a JavaScript object is passed as a final argument to the next operation:

    $ File.list().then(File.grep.bind("test*")).then(File.write.bind("out.txt"))

    Or with appropriate aliases via var and an assumption that "then" does a bind for arguments:

    $ ls().then(grep, "test*").then(write, "out.txt")

    Seems much easier to me to really understand this. It's a tradeoff of course. You might be typing a few more characters sometimes than for something like Bash, but whenever you tried to do something complex, it might be more understandable than a mess of metacharacters. And then file names (in ut8) without restrictions on metacharacters would not be such a big issue. These functions could even have a case-insensitive option.

    with a IMHO human-friendly syntax like one derived from Smalltalk, where you used spaces to separate messages instead of a dot ("."), you would have:

    $ (File ls) then: [File grep: "test*"] then:

    --
    A 21st century issue: the irony of technologies of abundance in the hands of those still thinking in terms of scarcity.
  24. Stop using cloud services for source control by Anonymous Coward · · Score: 0

    It seems like a no-brainier. If your business decided to use a cloud service for source control - you have no right to your source code and it is a major security hole

  25. Why not host source control in-house? by Anonymous Coward · · Score: 0

    Why not host source control in-house? It is plain stupid to assume that code is secure mid transmission with SSH encryption. Cell phones and emails are not secure with stronger security and they do not even have capability to modify code that will be executed.

    Github is the next Code Spaces

  26. "Critical Git" Security Vulnerability Announced? by Dogtanian · · Score: 1

    That's no way to talk about Linus, even if he did leave his door unlocked!

    --
    "Slashdot - News and Chat Sites Deviant". (Click "homepage" link above for details).
  27. tl;dr by Anonymous Coward · · Score: 0

    tl;dr

  28. Case sensitivity is a good idea by dwheeler · · Score: 1

    Case sensitivity is a good idea. The problem is that trying to do "case insensitive" matching depends on the locale. If you send your files to someone else, whether or not they are the "same" depends on your locale if you're serious. For Turkish users, 'i' and dotted 'I' are the same if you're considering them as case-sensitive; for many other languages and users, the dots create DIFFERENT characters. And if you're trying to make this "easy" it doesn't go far enough; Latin "a" usually looks the same as Cyrillic "". So please don't say "users can't tell the difference" - they ALREADY can't tell the difference visually, and naive solutions do not begin to address it. At least you can visually see the difference betweeen "Picture" and "picture", and in any case, users typically just click on the item and move on.

    I think it would be a GOOD idea to require that Unix-like filenames be legal UTF-8 sequences (since you then know how to display them), and then reject filenames that are not UTF-8. But that's much less intrusive than filename mangling.

    That said, it's too late to fix Windows, so if you're going to run on Windows you have to deal with the problem as it is.

    --
    - David A. Wheeler (see my Secure Programming HOWTO)