Source3: http://svn.pld-linux.org/svn/license-installer/license-installer.sh
# Source3-md5: 329c25f457fea66ec502b7ef70cb9ede
%endif
-Source4: memcpy-to-memmove.sh
URL: http://www.adobe.com/products/flashplayer/
%if %{with license_agreement}
BuildRequires: rpmbuild(macros) >= 1.357
exit 1
fi
-%ifarch %{x8664}
-# Bug #354073: Patch binary to use memmove instead of memcpy from
-# Redhat's bug https://bugzilla.redhat.com/show_bug.cgi?id=638477#c94
-cp libflashplayer.so libflashplayer.so.orig
-/bin/bash %{SOURCE4} libflashplayer.so \
-|| (echo "memcpy-to-memmove.sh failed" && exit 1)
-%endif
-%endif
-
%install
rm -rf $RPM_BUILD_ROOT
%if %{without license_agreement}
+++ /dev/null
-#!/bin/sh
-# Quick and dirty, but inefficient shellscript that
-# turns all memcpy calls into memmove calls
-# From Ray Strode
-
-set -e
-
-INPUT="$1"
-
-MEMCPY=0x$(objdump -S -j .plt $INPUT | grep memcpy |awk '{ print $1 }')
-[ $MEMCPY = "0x" ] && echo "Can't find memcpy call in $INPUT PLT" 1>&2 && exit 1
-
-MEMMOVE=0x$(objdump -S -j .plt $INPUT | grep memmove |awk '{ print $1 }')
-[ $MEMMOVE = "0x" ] && echo "Can't find memmove call in $INPUT PLT" 1>&2 && exit 2
-
-DELTA=$(($MEMMOVE - $MEMCPY))
-MEMCPY="$(printf '%x' $MEMCPY)"
-
-TEMP_OUTPUT="$(mktemp)"
-trap "rm -f $TEMP_OUTPUT" ERR
-
-cp $INPUT $TEMP_OUTPUT
-objdump -S -j .text $INPUT | while read offset e8 byte1 byte2 byte3 byte4 call call_offset rest; do
- test "$call_offset" = "$MEMCPY" || continue;
-
- OFFSET=$(printf "0x%x" $((0x${offset%:} + 1)))
- NUMBER="0x${byte4}${byte3}${byte2}${byte1}"
- echo -n "Changing call at offset $OFFSET from [${byte1} ${byte2} ${byte3} ${byte4}]"
- NUMBER=$(printf "0x%08x" $(($NUMBER + $DELTA)))
-
- BYTE1=$(printf "%02x" $((($NUMBER >> 24) & 0xff)))
- BYTE2=$(printf "%02x" $((($NUMBER >> 16) & 0xff)))
- BYTE3=$(printf "%02x" $((($NUMBER >> 8) & 0xff)))
- BYTE4=$(printf "%02x" $((($NUMBER >> 0) & 0xff)))
-
- echo " to [${BYTE4} ${BYTE3} ${BYTE2} ${BYTE1}]"
- echo -ne "\x$BYTE4\x$BYTE3\x$BYTE2\x$BYTE1" | dd of=$TEMP_OUTPUT bs=1 seek=$(($OFFSET)) count=4 conv=notrunc 2> /dev/null
-done
-
-mv $TEMP_OUTPUT $INPUT