summaryrefslogtreecommitdiff
path: root/HeapLAB/malloc_testbed/change_glibc_version.py
diff options
context:
space:
mode:
Diffstat (limited to 'HeapLAB/malloc_testbed/change_glibc_version.py')
-rwxr-xr-xHeapLAB/malloc_testbed/change_glibc_version.py30
1 files changed, 30 insertions, 0 deletions
diff --git a/HeapLAB/malloc_testbed/change_glibc_version.py b/HeapLAB/malloc_testbed/change_glibc_version.py
new file mode 100755
index 0000000..2ce1abc
--- /dev/null
+++ b/HeapLAB/malloc_testbed/change_glibc_version.py
@@ -0,0 +1,30 @@
+#!/usr/bin/python3
+import os
+
+# Grab available GLIBC versions.
+available_versions = []
+for item in os.scandir("../.glibc"):
+ if item.is_dir():
+ available_versions.append(item)
+available_versions.sort(key=lambda x:x.name)
+
+# Print menu.
+print("\n--------------------")
+print("Select GLIBC version")
+print("--------------------")
+for c, version in enumerate(available_versions):
+ print(f"{c:02}) " + version.name)
+
+# Process input.
+choice = int(input("> "))
+if choice < len(available_versions):
+ # Remove old symlinks.
+ try:
+ os.unlink(".links/libc.so.6")
+ os.unlink(".links/ld.so.2")
+ except FileNotFoundError:
+ print("No old links to remove")
+
+ # Replace symlinks.
+ os.symlink("../" + available_versions[choice].path + "/libc.so.6", ".links/libc.so.6")
+ os.symlink("../" + available_versions[choice].path + "/ld.so.2", ".links/ld.so.2")