Merge pull request #671 from guihkx/ensure-bytes-are-valid

linux: ensure bytes are valid before patching
This commit is contained in:
Jai Luthra 2023-06-28 14:53:42 +05:30 committed by GitHub
commit f778b3749c
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
2 changed files with 30 additions and 0 deletions

View File

@ -381,6 +381,20 @@ patch_common () {
} }
ensure_bytes_are_valid () {
driver_file="$driver_dir/$object.$driver_version"
original_bytes=$(awk -F / '$2 { print $2 }' <<< "$patch")
patched_bytes=$(awk -F / '$3 { print $3 }' <<< "$patch")
if LC_ALL=C grep -qaP "$original_bytes" "$driver_file"; then
return 0 # file is ready to be patched
fi
if LC_ALL=C grep -qaP "$patched_bytes" "$driver_file"; then
return 0 # file is likely patched already
fi
echo "Error: Could not find bytes '$original_bytes' to patch in '$driver_file'."
exit 1
}
rollback () { rollback () {
patch_common patch_common
if [[ -f "$backup_path/$object.$driver_version$backup_suffix" ]]; then if [[ -f "$backup_path/$object.$driver_version$backup_suffix" ]]; then
@ -395,6 +409,7 @@ rollback () {
patch () { patch () {
patch_common patch_common
ensure_bytes_are_valid
if [[ -f "$backup_path/$object.$driver_version$backup_suffix" ]]; then if [[ -f "$backup_path/$object.$driver_version$backup_suffix" ]]; then
bkp_hash="$(sha1sum "$backup_path/$object.$driver_version$backup_suffix" | cut -f1 -d\ )" bkp_hash="$(sha1sum "$backup_path/$object.$driver_version$backup_suffix" | cut -f1 -d\ )"
drv_hash="$(sha1sum "$driver_dir/$object.$driver_version" | cut -f1 -d\ )" drv_hash="$(sha1sum "$driver_dir/$object.$driver_version" | cut -f1 -d\ )"

View File

@ -457,6 +457,20 @@ patch_common () {
} }
ensure_bytes_are_valid () {
driver_file="$driver_dir/$object.$driver_version"
original_bytes=$(awk -F / '$2 { print $2 }' <<< "$patch")
patched_bytes=$(awk -F / '$3 { print $3 }' <<< "$patch")
if LC_ALL=C grep -qaP "$original_bytes" "$driver_file"; then
return 0 # file is ready to be patched
fi
if LC_ALL=C grep -qaP "$patched_bytes" "$driver_file"; then
return 0 # file is likely patched already
fi
echo "Error: Could not find bytes '$original_bytes' to patch in '$driver_file'."
exit 1
}
rollback () { rollback () {
patch_common patch_common
if [[ -f "$backup_path/$object.$driver_version$backup_suffix" ]]; then if [[ -f "$backup_path/$object.$driver_version$backup_suffix" ]]; then
@ -471,6 +485,7 @@ rollback () {
patch () { patch () {
patch_common patch_common
ensure_bytes_are_valid
if [[ -f "$backup_path/$object.$driver_version$backup_suffix" ]]; then if [[ -f "$backup_path/$object.$driver_version$backup_suffix" ]]; then
bkp_hash="$(sha1sum "$backup_path/$object.$driver_version$backup_suffix" | cut -f1 -d\ )" bkp_hash="$(sha1sum "$backup_path/$object.$driver_version$backup_suffix" | cut -f1 -d\ )"
drv_hash="$(sha1sum "$driver_dir/$object.$driver_version" | cut -f1 -d\ )" drv_hash="$(sha1sum "$driver_dir/$object.$driver_version" | cut -f1 -d\ )"