Announcement

Collapse
No announcement yet.

Samsung Accidentally Leaked The exFAT Linux Driver

Collapse
X
  • Filter
  • Time
  • Show
Clear All
new posts

  • Samsung Accidentally Leaked The exFAT Linux Driver

    Phoronix: Samsung Accidentally Leaked The exFAT Linux Driver

    Last month there was news of a native Linux driver for Microsoft's exFAT file-system. It turns out that the driver wasn't developed through any clean-room reverse-engineering but was rather the apparent rebadging of a Samsung exFAT driver for Linux...

    http://www.phoronix.com/vr.php?view=MTQxNzg

  • #2
    This is a blatant licence violation and Samsung has the right to go medieval on his ass. Will they? Probably not, but I'd expect a cease&desist pretty soon.

    Comment


    • #3
      Originally posted by r1348 View Post
      This is a blatant licence violation and Samsung has the right to go medieval on his ass. Will they? Probably not, but I'd expect a cease&desist pretty soon.
      Probably, but I know when I saw this code pop up originally i cloned the git directory. If you follow the GPL violations link, theres a link to an issue on the github page about the license situation. The developer makes a really valid point, due to the nature of git, it is seriously TRIVIAL to fork and clone this driver... The code's out there. The code will ALWAYS be out there now. This story alone probably got that guy 10+ more git clone's to his tree in 30seconds JUST to make sure that SOMEONE had a working copy of the code.

      The cat's out of the bag, you can't put the genie back in the bottle... now all there is to see is what Samsung is gonna TRY to do.

      Comment


      • #4
        "However a certain user "rxrz" went a bit too far with his actions"

        Certain "Andrei F." went a bit too far with his actions for sure. Linux has inofficial exFAT driver, oh no!, it is SO bad, lets blabber loud how bad it is, lets take down git repo so Linux user can access exFAT - I mean its written for Linux kernel (Android) and hereby illegal!

        Certain "Andrei F." is Pavlik Morozov and deserves the same fate.

        What an ass.

        Comment


        • #5
          Originally posted by Ericg View Post
          Probably, but I know when I saw this code pop up originally i cloned the git directory. If you follow the GPL violations link, theres a link to an issue on the github page about the license situation. The developer makes a really valid point, due to the nature of git, it is seriously TRIVIAL to fork and clone this driver... The code's out there. The code will ALWAYS be out there now. This story alone probably got that guy 10+ more git clone's to his tree in 30seconds JUST to make sure that SOMEONE had a working copy of the code.

          The cat's out of the bag, you can't put the genie back in the bottle... now all there is to see is what Samsung is gonna TRY to do.
          You're implying they actually care. They don't. They still need to pay licensing to Microsoft so it changes nothing.

          If anything, there's a chance someone will go over the code and write "supposedly white room" specs which one of the FOSS driver will then go on to use. I even suspect the specs could be released anonymously since the burden of proof doesn't lay on the accused*, but on the plaintiff*. In this case Microsoft will need to sue John Doe for the violation, at which point a FSF rep could testify the specs could have been made legitimately.

          *Yeah, I know it's not criminal court. But it sounds better

          Comment


          • #6
            Originally posted by Ericg View Post
            Probably, but I know when I saw this code pop up originally i cloned the git directory. If you follow the GPL violations link, theres a link to an issue on the github page about the license situation. The developer makes a really valid point, due to the nature of git, it is seriously TRIVIAL to fork and clone this driver... The code's out there. The code will ALWAYS be out there now. This story alone probably got that guy 10+ more git clone's to his tree in 30seconds JUST to make sure that SOMEONE had a working copy of the code.

            The cat's out of the bag, you can't put the genie back in the bottle... now all there is to see is what Samsung is gonna TRY to do.
            As for what Samsung is going to TRY to do, the possibilities are pretty limited I think. I don't think we'll see legally distributable GPL code come out of this. Most likely Samsung cannot GPL their code even if they wanted to. I figure Samsung's options are to either turn a blind eye to the infringement, c&d the infringement, or try to work with their upstream partners to make the infringement a non-infringement. That last option is probably a dead end for Samsung, so more likely we'll see them go route 1 or route 2.

            Comment


            • #7
              Originally posted by c117152 View Post
              You're implying they actually care. They don't. They still need to pay licensing to Microsoft so it changes nothing.

              If anything, there's a chance someone will go over the code and write "supposedly white room" specs which one of the FOSS driver will then go on to use. I even suspect the specs could be released anonymously since the burden of proof doesn't lay on the accused*, but on the plaintiff*. In this case Microsoft will need to sue John Doe for the violation, at which point a FSF rep could testify the specs could have been made legitimately.

              *Yeah, I know it's not criminal court. But it sounds better
              A good idea, indeed. Someone please notify FSF about this brilliant opportunity.

              Comment


              • #8
                I'd rather see exFAT burn in hell with its patents, it's sad that we see this attempt instead.

                Comment


                • #9
                  Originally posted by Morpheus View Post
                  I'd rather see exFAT burn in hell with its patents, it's sad that we see this attempt instead.
                  +1 /10chars

                  Comment


                  • #10
                    Originally posted by Serge View Post
                    As for what Samsung is going to TRY to do, the possibilities are pretty limited I think. I don't think we'll see legally distributable GPL code come out of this. Most likely Samsung cannot GPL their code even if they wanted to. I figure Samsung's options are to either turn a blind eye to the infringement, c&d the infringement, or try to work with their upstream partners to make the infringement a non-infringement. That last option is probably a dead end for Samsung, so more likely we'll see them go route 1 or route 2.
                    But if the can't GPL thier code, and distribute it anyways as a kernel module in some kernel, that's a copyright violation itself. If the M$ patents are the issue, then port F2FS to windows and mac.
                    Last edited by WorBlux; 07-23-2013, 08:09 AM.

                    Comment


                    • #11
                      Originally posted by r1348 View Post
                      This is a blatant licence violation and Samsung has the right to go medieval on his ass. Will they? Probably not, but I'd expect a cease&desist pretty soon.
                      Well it is also likely that this module violates the GPL license of the kernel. Linus only considers stuff that was originally written for other operating systems and then trivially ported to Linux as non-GPL:

                      Originally posted by Linus Torvalds
                      And in fact, when it comes to modules, the GPL issue is exactly the same.
                      The kernel _is_ GPL. No ifs, buts and maybe's about it. As a result,
                      anything that is a derived work has to be GPL'd. It's that simple.

                      Now, the "derived work" issue in copyright law is the only thing that
                      leads to any gray areas. There are areas that are not gray at all: user
                      space is clearly not a derived work, while kernel patches clearly _are_
                      derived works.

                      But one gray area in particular is something like a driver that was
                      originally written for another operating system (ie clearly not a derived
                      work of Linux in origin). At exactly what point does it become a derived
                      work of the kernel (and thus fall under the GPL)?

                      THAT is a gray area, and _that_ is the area where I personally believe
                      that some modules may be considered to not be derived works simply because
                      they weren't designed for Linux and don't depend on any special Linux
                      behaviour.

                      Basically:
                      - anything that was written with Linux in mind (whether it then _also_
                      works on other operating systems or not) is clearly partially a derived
                      work.

                      - anything that has knowledge of and plays with fundamental internal
                      Linux behaviour is clearly a derived work. If you need to muck around
                      with core code, you're derived, no question about it.
                      The Samsung code appears to have been written by a developer who has been doing Linux kernel development since 2002 (at least), so I think they would have a hard time in court arguing that this is a cleanroom implementation that wasn't "designed for Linux". Now that the source is out, it will be interesting to see some more technical analysis of exactly how integrated it is with the kernel, and whether it actually contains any code/data structures that taint it due to being directly copied from the kernel.

                      Comment


                      • #12
                        Originally posted by WorBlux View Post
                        But if the can't GPL thier code, and distribute it anyways as a kernel module in some kernel, that's a copyright violation itself. If the M$ patents are the issue, then port F2FS to windows and mac.
                        Samsung can release patented code as GPLv2 but not GPLv3. The kernel is GPLv2 so patented drivers are ok.

                        Comment


                        • #13
                          Originally posted by chrisb View Post
                          The Samsung code appears to have been written by a developer who has been doing Linux kernel development since 2002 (at least), so I think they would have a hard time in court arguing that this is a cleanroom implementation that wasn't "designed for Linux". Now that the source is out, it will be interesting to see some more technical analysis of exactly how integrated it is with the kernel, and whether it actually contains any code/data structures that taint it due to being directly copied from the kernel.
                          Ok I took a quick 10 second look: https://github.com/rxrz/exfat-nofuse.../exfat_super.c contains string "timestamp is already written, so mark_inode_dirty() is unneeded." searching on this string shows that it was added to the kernel in 2005 in this commit: http://linux.derkeiler.com/Mailing-L...5-03/1976.html

                          Other comments are the same e.g. exfat_setattr() "We don't return -EPERM here. Yes, strange, but this is too * old behavior.": http://www.cs.fsu.edu/~baker/devices.../fs/fat/file.c
                          Code:
                          390         /*
                          391          * We don't return -EPERM here. Yes, strange, but this is too
                          392          * old behavior.
                          393          */
                          394         if (attr->ia_valid & ATTR_MODE) {
                          395                 if (fat_sanitize_mode(sbi, inode, &attr->ia_mode) < 0)
                          396                         attr->ia_valid &= ~ATTR_MODE;
                          397         }
                          398 
                          399         if (attr->ia_valid)
                          400                 error = inode_setattr(inode, attr);
                          401 out:
                          402         return error;
                          403 }
                          404 EXPORT_SYMBOL_GPL(fat_setattr);
                          So it appears the "Samsung Proprietary code" contains GPLv2 copied straight from Linux kernel.

                          Comment


                          • #14
                            Originally posted by chrisb View Post
                            Samsung can release patented code as GPLv2 but not GPLv3. The kernel is GPLv2 so patented drivers are ok.
                            The can distribute the program without a patent license, but if you distribute it with a patent license, that licence must be royaly-free and redistributable. See section 7 of the GPL 2.0. The main difference outlined in section 11 of 3.0 is the automatic grant of patent licenses by contributors to the program. Otherwise it just spells out obligations regarding a third party patent in greater detail.

                            I don't know what parts of the filesystem the patents cover, but It may be possible that buying flash media preformated to exfat gives you an implied license to use code neccessary to use that filesytem. If this isn't the case Samsung still might be in the clear if thier patent license is linked to the hardware rather than the software.

                            Comment


                            • #15
                              Somebody opened the can of worms! It seems a Samsung employee did dirty things in the code, copying GPL'd stuff into their "propietary" filesystem driver and that means it's a derived work by all means.

                              Are there plans about researching that source code? I'm sure there can be more interesting stuff out there, maybe an automated pattern search could give more results.

                              So well, exFAT is available. Now let's attack the patents that cover it


                              Originally posted by chrisb View Post
                              Ok I took a quick 10 second look: https://github.com/rxrz/exfat-nofuse.../exfat_super.c contains string "timestamp is already written, so mark_inode_dirty() is unneeded." searching on this string shows that it was added to the kernel in 2005 in this commit: http://linux.derkeiler.com/Mailing-L...5-03/1976.html

                              Other comments are the same e.g. exfat_setattr() "We don't return -EPERM here. Yes, strange, but this is too * old behavior.": http://www.cs.fsu.edu/~baker/devices.../fs/fat/file.c
                              Code:
                              390         /*
                              391          * We don't return -EPERM here. Yes, strange, but this is too
                              392          * old behavior.
                              393          */
                              394         if (attr->ia_valid & ATTR_MODE) {
                              395                 if (fat_sanitize_mode(sbi, inode, &attr->ia_mode) < 0)
                              396                         attr->ia_valid &= ~ATTR_MODE;
                              397         }
                              398 
                              399         if (attr->ia_valid)
                              400                 error = inode_setattr(inode, attr);
                              401 out:
                              402         return error;
                              403 }
                              404 EXPORT_SYMBOL_GPL(fat_setattr);
                              So it appears the "Samsung Proprietary code" contains GPLv2 copied straight from Linux kernel.

                              Comment

                              Working...
                              X