From 4aca87515a5083ae0e31ce3177189fd43b6d05ac Mon Sep 17 00:00:00 2001 From: Andreas Baumann Date: Sat, 3 Jan 2015 13:58:15 +0100 Subject: patch to Vanilla Tomato 1.28 --- .../src/router/busybox/libbb/create_icmp_socket.c | 31 +++++++++++----------- 1 file changed, 15 insertions(+), 16 deletions(-) (limited to 'release/src/router/busybox/libbb/create_icmp_socket.c') diff --git a/release/src/router/busybox/libbb/create_icmp_socket.c b/release/src/router/busybox/libbb/create_icmp_socket.c index d804b398..d75f8452 100644 --- a/release/src/router/busybox/libbb/create_icmp_socket.c +++ b/release/src/router/busybox/libbb/create_icmp_socket.c @@ -2,36 +2,35 @@ /* * Utility routines. * - * create raw socket for icmp protocol test permision - * and drop root privilegies if running setuid + * create raw socket for icmp protocol + * and drop root privileges if running setuid * + * Licensed under GPLv2, see file LICENSE in this tarball for details. */ -#include -#include -#include -#include -#include #include "libbb.h" -int create_icmp_socket(void) +int FAST_FUNC create_icmp_socket(void) { - struct protoent *proto; int sock; - +#if 0 + struct protoent *proto; proto = getprotobyname("icmp"); /* if getprotobyname failed, just silently force * proto->p_proto to have the correct value for "icmp" */ - if ((sock = socket(AF_INET, SOCK_RAW, - (proto ? proto->p_proto : 1))) < 0) { /* 1 == ICMP */ + sock = socket(AF_INET, SOCK_RAW, + (proto ? proto->p_proto : 1)); /* 1 == ICMP */ +#else + sock = socket(AF_INET, SOCK_RAW, 1); /* 1 == ICMP */ +#endif + if (sock < 0) { if (errno == EPERM) - error_msg_and_die("permission denied. (are you root?)"); - else - perror_msg_and_die(can_not_create_raw_socket); + bb_error_msg_and_die(bb_msg_perm_denied_are_you_root); + bb_perror_msg_and_die(bb_msg_can_not_create_raw_socket); } /* drop root privs if running setuid */ - setuid(getuid()); + xsetuid(getuid()); return sock; } -- cgit v1.2.3-54-g00ecf