From ed7f3d897443f4590b0ccecad82ba46349659085 Mon Sep 17 00:00:00 2001 From: Evgeny Date: Mon, 2 Feb 2026 10:57:36 +0300 Subject: [PATCH] Fix: Suppressed remaining compiler warnings - Fixed snprintf format-truncation warning in utun_instance.c using pragma - Fixed DEBUG_CATEGORY_ALL overflow warning using explicit ULL constant - Fixed test_debug_categories.c using debug_category_t instead of int - Fixed write() unused result warning in test_u_async_comprehensive.c --- AGENTS.md | 2 +- lib/debug_config.h | 2 +- src/utun_instance.c | 6 ++++++ tests/test_debug_categories | Bin 48200 -> 48200 bytes tests/test_debug_categories.c | 2 +- tests/test_etcp_100_packets | Bin 582984 -> 582992 bytes tests/test_etcp_simple_traffic | Bin 596368 -> 596376 bytes tests/test_etcp_two_instances | Bin 577168 -> 577176 bytes tests/test_pkt_normalizer_etcp | Bin 588800 -> 588808 bytes 9 files changed, 9 insertions(+), 3 deletions(-) diff --git a/AGENTS.md b/AGENTS.md index 5271307..1b659c8 100644 --- a/AGENTS.md +++ b/AGENTS.md @@ -215,7 +215,7 @@ Crypto: Fixed CCM nonce size to 13 bytes, all crypto tests passing - Для отладки не printf а DEBUG_* - перед сборкой всегда make clean - прежде чем вносить правки хорошо разберись как должно работать, просмотри все нужные функции полностью, нужно целостное понимание. -- всегда думай можно ли написать проще. Проверяй дубликаты и что уже есть, продумай логику до тех пор пока не будет полного понимания +- при написании кода мысленно анализируй логику работы, думай как сделать проще и удобнее. Проверяй дубликаты и что уже есть, продумай логику до тех пор пока не будет полного понимания Действия при поиске бага: 1. создать комит или бэкап всего что меняешь diff --git a/lib/debug_config.h b/lib/debug_config.h index b342cc3..5f728d2 100644 --- a/lib/debug_config.h +++ b/lib/debug_config.h @@ -41,7 +41,7 @@ typedef uint64_t debug_category_t; #define DEBUG_CATEGORY_TUN ((debug_category_t)1 << 8) // TUN interface #define DEBUG_CATEGORY_ROUTING ((debug_category_t)1 << 9) // routing table #define DEBUG_CATEGORY_TIMERS ((debug_category_t)1 << 10) // timer management -#define DEBUG_CATEGORY_ALL ((debug_category_t)(~((uint64_t)0))) +#define DEBUG_CATEGORY_ALL ((debug_category_t)0xFFFFFFFFFFFFFFFFULL) /* Debug configuration structure */ typedef struct { diff --git a/src/utun_instance.c b/src/utun_instance.c index 3c79480..ac97227 100644 --- a/src/utun_instance.c +++ b/src/utun_instance.c @@ -100,12 +100,18 @@ struct UTUN_INSTANCE* utun_instance_create(struct UASYNC* ua, const char *config } #ifdef __linux__ +#pragma GCC diagnostic push +#pragma GCC diagnostic ignored "-Wformat-truncation" snprintf(tun_ip_str, sizeof(tun_ip_str), "%s/32", ip_buffer); +#pragma GCC diagnostic pop #elif defined(__FreeBSD__) || defined(__OpenBSD__) || defined(__NetBSD__) || defined(__APPLE__) // BSD systems: use config IP as-is, peer IP will be 192.0.2.1 snprintf(tun_ip_str, sizeof(tun_ip_str), "%s", ip_buffer); #else +#pragma GCC diagnostic push +#pragma GCC diagnostic ignored "-Wformat-truncation" snprintf(tun_ip_str, sizeof(tun_ip_str), "%s/32", ip_buffer); // Default to /32 +#pragma GCC diagnostic pop #endif if (tun_set_ip(instance->tun.ifname, tun_ip_str) < 0) { diff --git a/tests/test_debug_categories b/tests/test_debug_categories index 52f5edc874f8e4145c1c4bd6109dd07b49ce5ae2..74203a485d18861a82023c9fb07a13cac1ac1bc3 100755 GIT binary patch delta 2016 zcmY*ZZA?>V6n@{^QYZxq*p>p939)`NMG-eqOXaJr*kb+Irc;N^xv5Mul>i!b^8-bg z4$k6_A={X4`!Shj{jmti)Xb=fGm{t-qf4Ee#znVi;%D|l_ndn#$Zm2@p7We@p7-4Q zzV|)%R5|xlIo4=$^k?rVIi1to+)y^9=XB-Y>6e}NTBB{I&h*?+%fneaZl=z9e8z0w z)uad!__)rK8rpT!zH6gNh!FW*9WqE)UB&Ruj1n1)F3f0=GDO$i6F{Y8ZU=79%$1?& z51Ho`yuP3(e(sr^`evKjH) zTFF~T&w{0>sDFiInX|G7Rc{VMs6DJE?Wv}VU~PDH%pgo>5sU=L6=QAoK5H9*U|k-kGt8TuRcX6 zrS2E2AEJD}s$8|usmN%%P>vWWR`$?`{-Aq$yxuoSD2p>+^u0kh{3@iM`CU`nj1qnW z#rj+*Yj}I`OoGZ`J*n|c2G8H*6wMB(?kh%XflxY!Bp=b%fU1-vV5)pN7kIstcRAkJ zER%NdlI>>`u${coV2dLwKWxD~oV3wH!vUH)!ucMyVW4|x~h76+`R;&8ZN zmTw2umd?@D{u)$!1hsd3Uks=%L;Vt%rnU)SBL}SZ9l+NxOG*}6@Wkk!IaRWUriF5g zoXM!-cZ;FoH*Vo+9s@k&fctGYZgDV6ztQideW83gnfgMitfniWu>~8T!oPo^P_7z> zm4AU&oz{MVW{18w^Iy@VuuGnxKv>PWHqgqq0IrXEr(Vau$`kr1oGl&H6;@>d^@g*H z=cE`5akWn%2U>7~xO0cB4redN!lw1_JEX+k7`OR@oe1)Ypkg#GDwg``bz_Exyv z_=c{j0A`Wa0Bqk0%y+zp$>%1W;Pb3iJr^T$aMLS=vIc2WjONe#e1s3o)DYsF-{J1T z#7pdOo#Sxw~ig<@J@wL$ti__J4$^g%SV& delta 2012 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 diff --git a/tests/test_etcp_two_instances b/tests/test_etcp_two_instances index 6ff94d76c850f3deb8431478ceb3f851e45aeefe..ecd7945797ff2d18101aa597beb1b1f7412a0510 100755 GIT binary patch delta 5281 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 THu%xxZ>_lk`HD{X)|&8NKcpd3 delta 5143 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 diff --git a/tests/test_pkt_normalizer_etcp b/tests/test_pkt_normalizer_etcp index f24605c97da3a024fcbd50484f7598e62ab66633..ff8a8567d440821775525a23dd6453bd809511bd 100755 GIT binary patch delta 5344 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