Показать сообщение отдельно

  #2  
Старый 01.11.2016, 21:38
randomword0x3f52
Guest
Сообщений: n/a
Провел на форуме:
8675

Репутация: 9
По умолчанию

Брать надо милионщика, несколько крайних версий. Сравнивать между собой, и смотреть где что заткнули, а потом пробиваться к дыре.

Для примера закидываю, как сравнивал 4.6.1 и 4.6.0

Для начала сравним список файлов:

cd ./wordpress-4.6.1

find ./ > ../bug-research/4.6.1.fnl

cd ../wordpress-4.6.0

find ./ > ../bug-research/4.6.0.fnl

cd ../bug-research/

diff 4.6.1.fnl 4.6.0.fnl

В новой версии появился файлик:

./wp-content/plugins/akismet/class.akismet-cli.php

cd wordpress-4.6.0/

cat ../bug-research/4.6.0.fnl | xargs md5sum > ../bug-research/4.6.0.md5.fnl

cd ../wordpress-4.6.1/

cat ../bug-research/4.6.0.fnl | xargs md5sum > ../bug-research/4.6.1.md5.fnl

cd ../bug-research

diff 4.6.1.md5.fnl 4.6.0.md5.fnl > ./md5.diff

Уберём строки дубли и все файлы кроме php скриптов

cat ./md5.diff | grep \.php | grep ^\ php.md5.fnl

php -r '$a=file("./php.md5.fnl"); foreach($a as $s) echo(substr($s,36));' > php.fnl

mkdir fnl

mv {4.6.0.fnl,4.6.0.md5.fnl,4.6.1.fnl,4.6.1.md5.fnl,m d5.diff,php.fnl,php.md5.fnl} ./fnl/

Сравним сорсы

mkdir ./diff ; cd ./diff

cat ../fnl/php.fnl | xargs dirname | xargs mkdir -p

cat ../fnl/php.fnl | awk '{ print "diff ../../wordpress-4.6.0/"$0" ../../wordpress-4.6.1/"$0" > "$0".diff" }' > ../diff.src.sh

. ../diff.src.sh

cd ..

find ./ | grep \.php.diff

Смотрим что к чему

less ./diff/wp-admin/includes/class-file-upload-upgrader.php.diff # инклюд? скуля? крос?

less ./diff/wp-admin/includes/media.php.diff # скуля? крос?

less ./diff/wp-content/plugins/akismet/class.akismet-admin.php.diff # ???

less ./diff/wp-content/plugins/akismet/class.akismet.php.diff # скуля?

less ./diff/wp-content/plugins/akismet/views/config.php.diff # скулёжная параноя?

less ./diff/wp-includes/class-http.php.diff # скуля?

less ./diff/wp-includes/wp-db.php.diff # глюк?

less ./diff/wp-includes/revision.php.diff # глюк?

less ./diff/wp-includes/pluggable.php.diff # глюк?

less ./diff/wp-includes/script-loader.php.diff # крос?

less ./diff/wp-includes/load.php.diff # глюк?

Удачи!
 
Ответить с цитированием