Решение: пересобрать пакет с внесёнными изменениями, причём для практики соберём его по всем правилам.
Решение привожу в виде последовательности команд, надеюсь разберётесь :)
sudo apt-get build-dep tcpreplay
apt-get source tcpreplay
cd tcpreplay-3.4.3/
dch --nmu # пишем в чейнджлоге что же мы изменили
export QUILT_PATCHES=debian/patches
mkdir debian/patches
quilt new fix-tcpprep-crash
quilt edit src/common/cache.c # откроется окно редактора и мы вносим изменения в код
# сохраняемся и выходим
quilt refresh # этой командой мы и сгенерируем непосредственно патч
cat debian/patches/fix-tcpprep-crash # посмотрите в чём же была проблема
Index: tcpreplay-3.4.3/src/common/cache.c
===================================================================
--- tcpreplay-3.4.3.orig/src/common/cache.c 2009-06-25 22:45:49.000000000 +0400
+++ tcpreplay-3.4.3/src/common/cache.c 2013-03-12 16:52:15.583306621 +0400
@@ -170,7 +170,7 @@
cache_header = (tcpr_cache_file_hdr_t *)
safe_malloc(sizeof(tcpr_cache_file_hdr_t));
strncpy(cache_header->magic, CACHEMAGIC, strlen(CACHEMAGIC));
- strncpy(cache_header->version, CACHEVERSION, strlen(CACHEMAGIC));
+ strncpy(cache_header->version, CACHEVERSION, strlen(CACHEVERSION));
cache_header->packets_per_byte = htons(CACHE_PACKETS_PER_BYTE);
cache_header->num_packets = htonll((u_int64_t)numpackets);
debuild -us -uc # соберём deb-пакет, он появится в директории уровнем выше
cd ..
sudo gdebi tcpreplay_3.4.3-2ubuntu2.1_i386.deb # установим пакет
debdiff tcpreplay_3.4.3-2ubuntu2.dsc tcpreplay_3.4.3-2ubuntu2.1.dsc > fix-tcpprep-crash-debdiff # сгенерируем debdiff
Комментариев нет:
Отправить комментарий