← Commit list

7c1ed2e92

Denis Vlasenko
Denis Vlasenko
2006-10-03
SOURCE BUG Duration: 39s

Subject

traceroute: do not look up icmp protocol# in /etc, it is well-known :)

SOURCE BUG

This commit was genuinely broken at the time (not related to our build system): scripts/config/mkconfigs.c (2005-08-01 - 2006-10-05 arasi) uretilen bbconfigopts.h icine .config satirlarini kacissiz, ham newline'larla gömüyordu - gecerli C degildi, busybox'un kendi bb_mkdep araci bile parse edemiyordu (7d219aab7 ile duzeltildi, mkconfigs shell scripte cevrildi)

→ Bu hatanin tam hikayesini ve duzeltme diffini gor

Binary

No binary (build failed)

Architecture & Compiler Flags

Architecture: x86_64-linux-gnu Compiler: gcc (Ubuntu 11.4.0-1ubuntu1~22.04.3) 11.4.0

—

Build Log

(log yok)

Commit Diff GitHub →

networking/traceroute.c+2 -7
@@ -224,6 +224,7 @@
#include <net/if.h>
#include <netinet/in.h>
#include <arpa/inet.h>
+#include <netinet/protocols.h>
#include <netinet/udp.h>
#include <netinet/ip.h>
#include <netinet/ip_icmp.h>
@@ -921,14 +922,12 @@ int
traceroute_main(int argc, char *argv[])
{
int code, n;
- char *cp;
unsigned char *outp;
u_int32_t *ap;
struct sockaddr_in *from = (struct sockaddr_in *)&wherefrom;
struct sockaddr_in *to = (struct sockaddr_in *)&whereto;
struct hostinfo *hi;
int on = 1;
- struct protoent *pe;
int ttl, probe, i;
int seq = 0;
int tos = 0;
@@ -1076,16 +1075,12 @@ traceroute_main(int argc, char *argv[])
bb_show_usage();
}
- cp = "icmp";
- if ((pe = getprotobyname(cp)) == NULL)
- bb_perror_msg_and_die("unknown protocol %s", cp);
-
/* Insure the socket fds won't be 0, 1 or 2 */
do n = xopen(bb_dev_null, O_RDONLY); while (n < 2);
if (n > 2)
close(n);
- s = xsocket(AF_INET, SOCK_RAW, pe->p_proto);
+ s = xsocket(AF_INET, SOCK_RAW, IP_ICMP);
#ifdef CONFIG_FEATURE_TRACEROUTE_SO_DEBUG
if (op & USAGE_OP_DEBUG)