forked from righettod/toolbox-pentest-web
-
Notifications
You must be signed in to change notification settings - Fork 0
Expand file tree
/
Copy pathbuild-pg-extension.sh
More file actions
23 lines (23 loc) · 892 Bytes
/
build-pg-extension.sh
File metadata and controls
23 lines (23 loc) · 892 Bytes
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
#!/bin/bash
sudo apt install -qq -y gcc
sudo apt search postgresql-server-dev | grep -E "\-server\-dev\-[0-9]+\.?[0-9]*" | cut -d'/' -f1 > versions.txt
echo "Versions available:"
cat versions.txt
mkdir extension_dist
while IFS= read -r version
do
v=$(echo $version | cut -d'-' -f4)
echo "Compile for version $v ..."
sudo apt install -qq -y postgresql-$v postgresql-server-dev-$v
pg_header_file=$(sudo find / -name "postgres.h" -print)
pg_headers_folder=$(dirname $pg_header_file)
echo "PG headers location is $pg_headers_folder"
cp templates/pg_cmdexec_extension.c .
gcc -I $pg_headers_folder -shared -fPIC -o pg_cmdexec_extension_$v.so pg_cmdexec_extension.c
file pg_cmdexec_extension_$v.so
mv pg_cmdexec_extension_$v.so extension_dist/.
sudo apt purge -qq -y postgresql-$v postgresql-server-dev-$v
done < versions.txt
cd extension_dist
sha256sum *.so > hash.txt
cd ..