summaryrefslogtreecommitdiff
path: root/HeapLAB/malloc_testbed/change_glibc_version.py
blob: 2ce1abc276d5d457a3d8d30db8109532cd6699f9 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
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")