c0bbbd4bbe
- Fix msdos-overlap py3 conversion (bcl)
88 lines
2.6 KiB
Diff
88 lines
2.6 KiB
Diff
From 073c24b5d2361857b8ce8b5dcd81a3e26fc05b96 Mon Sep 17 00:00:00 2001
|
|
From: "Brian C. Lane" <bcl@redhat.com>
|
|
Date: Wed, 27 Jun 2018 13:45:09 -0700
|
|
Subject: [PATCH 91/92] Modify gpt-header-move and msdos-overlap to work with
|
|
py2 or py3
|
|
|
|
Distributions are starting to remove python2 and only use python3.
|
|
Modify these test scripts so that they will work with either python 2.7
|
|
or python 3.X
|
|
---
|
|
tests/gpt-header-move | 15 ++++++++-------
|
|
tests/msdos-overlap | 5 ++---
|
|
2 files changed, 10 insertions(+), 10 deletions(-)
|
|
|
|
diff --git a/tests/gpt-header-move b/tests/gpt-header-move
|
|
index 05cdc65..3dda5cb 100755
|
|
--- a/tests/gpt-header-move
|
|
+++ b/tests/gpt-header-move
|
|
@@ -3,20 +3,21 @@
|
|
# open img file, subtract 33 from altlba address, and move the last 33 sectors
|
|
# back by 33 sectors
|
|
|
|
-from struct import *
|
|
+from struct import unpack_from, pack_into
|
|
from zipfile import crc32
|
|
import array
|
|
import sys
|
|
+
|
|
file = open(sys.argv[1],'rb+')
|
|
file.seek(512)
|
|
gptheader = file.read(512)
|
|
-altlba = unpack_from('<q', gptheader,offset=32)[0]
|
|
-gptheader = array.array('c',gptheader)
|
|
+altlba = unpack_from('<q', gptheader, offset=32)[0]
|
|
+gptheader = array.array('B', gptheader)
|
|
pack_into('<Q', gptheader, 32, altlba-33)
|
|
#zero header crc
|
|
pack_into('<L', gptheader, 16, 0)
|
|
#compute new crc
|
|
-newcrc = ((crc32(buffer(gptheader,0,92))) & 0xFFFFFFFF)
|
|
+newcrc = ((crc32(gptheader[:92])) & 0xFFFFFFFF)
|
|
pack_into('<L', gptheader, 16, newcrc)
|
|
file.seek(512)
|
|
file.write(gptheader)
|
|
@@ -25,7 +26,7 @@ gptheader = file.read(512)
|
|
file.seek(512*(altlba-32))
|
|
backup = file.read(512*32)
|
|
altlba -= 33
|
|
-gptheader = array.array('c',gptheader)
|
|
+gptheader = array.array('B',gptheader)
|
|
#update mylba
|
|
pack_into('<Q', gptheader, 24, altlba)
|
|
#update table lba
|
|
@@ -33,9 +34,9 @@ pack_into('<Q', gptheader, 72, altlba-32)
|
|
#zero header crc
|
|
pack_into('<L', gptheader, 16, 0)
|
|
#compute new crc
|
|
-newcrc = ((crc32(buffer(gptheader,0,92))) & 0xFFFFFFFF)
|
|
+newcrc = ((crc32(gptheader[:92])) & 0xFFFFFFFF)
|
|
pack_into('<L', gptheader, 16, newcrc)
|
|
file.seek(512*(altlba-32))
|
|
file.write(backup)
|
|
file.write(gptheader)
|
|
-file.write("\0" * (512 * 33))
|
|
+file.write(b"\0" * (512 * 33))
|
|
diff --git a/tests/msdos-overlap b/tests/msdos-overlap
|
|
index 5bddfb0..d6ae8d6 100755
|
|
--- a/tests/msdos-overlap
|
|
+++ b/tests/msdos-overlap
|
|
@@ -14,12 +14,11 @@ BAD_ENTRY = (0x72, 0xf5, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
|
OFFSET = 0x1b8
|
|
|
|
if len(sys.argv) < 2:
|
|
- print "%s: <image or device>"
|
|
+ print("%s: <image or device>" % sys.argv[0])
|
|
sys.exit(1)
|
|
|
|
-data = "".join(chr(c) for c in BAD_ENTRY)
|
|
with open(sys.argv[1], "rb+") as f:
|
|
f.seek(OFFSET, 0)
|
|
- f.write(data)
|
|
+ f.write(bytes(bytearray(BAD_ENTRY)))
|
|
|
|
sys.exit(0)
|
|
--
|
|
2.17.1
|
|
|