[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/
- [Jailkit-dev] [bug #61130] jk_lib.py calculates incorrect device major number,
Jesse Norell <=