jailkit-dev
[Top][All Lists]
Advanced

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

[Jailkit-dev] [bug #61130] jk_lib.py calculates incorrect device major n


From: Jesse Norell
Subject: [Jailkit-dev] [bug #61130] jk_lib.py calculates incorrect device major number
Date: Wed, 8 Sep 2021 17:26:13 -0400 (EDT)
User-agent: Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/93.0.4577.63 Safari/537.36

URL:
  <https://savannah.nongnu.org/bugs/?61130>

                 Summary: jk_lib.py calculates incorrect device major number
                 Project: Jailkit
            Submitted by: jnorell
            Submitted on: Wed 08 Sep 2021 09:26:12 PM UTC
                Category: None
                Severity: 3 - Normal
              Item Group: None
                  Status: None
                 Privacy: Public
             Assigned to: None
             Open/Closed: Open
         Discussion Lock: Any

    _______________________________________________________

Details:

jk_lib.py uses the division operator to obtain the major device number, and
the division operator always returns a floating point, not an integer.  It
should use the floor division operator:


--- /usr/share/jailkit/jk_lib.py.orig   2021-09-08 14:52:21.196000000 -0600
+++ /usr/share/jailkit/jk_lib.py        2021-09-08 15:01:07.748000000 -0600
@@ -578,18 +578,18 @@
        sb = os.stat(path)
        try:
                if (sys.platform[:5] == 'linux'):
-                       major = sb.st_rdev / 256 #major = st_rdev divided by
256 (8bit reserved for the minor number)
+                       major = sb.st_rdev // 256 #major = st_rdev divided by
256 (8bit reserved for the minor number)
                        minor = sb.st_rdev % 256 #minor = remainder of st_rdev
divided by 256
                elif (sys.platform == 'sunos5'):
                        if (sys.maxint == 2147483647):
-                               major = sb.st_rdev / 262144 #major = st_rdev
divided by 256 (18 bits reserved for the minor number)
+                               major = sb.st_rdev // 262144 #major = st_rdev
divided by 256 (18 bits reserved for the minor number)
                                minor = sb.st_rdev % 262144 #minor = remainder
of st_rdev divided by 256
                        else:
                                #64 bit solaris has 32 bit minor/32bit major
-                               major = sb.st_rdev / 2147483647
+                               major = sb.st_rdev // 2147483647
                                minor =  sb.st_rdev % 2147483647
                else:
-                       major = sb.st_rdev / 256 #major = st_rdev divided by
256
+                       major = sb.st_rdev // 256 #major = st_rdev divided by
256
                        minor = sb.st_rdev % 256 #minor = remainder of st_rdev
divided by 256
                if (stat.S_ISCHR(sb.st_mode)): 
                        mode = 'c'





    _______________________________________________________

Reply to this item at:

  <https://savannah.nongnu.org/bugs/?61130>

_______________________________________________
  Message sent via Savannah
  https://savannah.nongnu.org/




reply via email to

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