packages/net/ndyndns/patches/020-ndyndns.patch
florian 81b7af0be4 [package] update ndyndns to 2.1 (#8732)
git-svn-id: svn://svn.openwrt.org/openwrt/packages@25246 3c298f89-4303-0410-b956-a3cf2f4a3e73
2011-01-29 22:09:11 +00:00

212 lines
6.2 KiB
Diff

diff -urN ndyndns-2.1.orig/cfg.c ndyndns-2.1/cfg.c
--- ndyndns-2.1.orig/cfg.c 2011-01-26 17:02:05.762443700 +0100
+++ ndyndns-2.1/cfg.c 2011-01-26 17:03:43.334443683 +0100
@@ -804,34 +804,6 @@
continue;
}
- tmp = parse_line_string(point, "user");
- if (tmp) {
- switch (prs) {
- default:
- parse_warn(lnum, "user");
- break;
- case PRS_CONFIG:
- cfg_set_user(tmp);
- break;
- }
- free(tmp);
- continue;
- }
-
- tmp = parse_line_string(point, "group");
- if (tmp) {
- switch (prs) {
- default:
- parse_warn(lnum, "group");
- break;
- case PRS_CONFIG:
- cfg_set_group(tmp);
- break;
- }
- free(tmp);
- continue;
- }
-
tmp = parse_line_string(point, "interface");
if (tmp) {
switch (prs) {
diff -urN ndyndns-2.1.orig/chroot.c ndyndns-2.1/chroot.c
--- ndyndns-2.1.orig/chroot.c 2011-01-26 17:02:05.762443700 +0100
+++ ndyndns-2.1/chroot.c 2011-01-26 17:03:54.470442525 +0100
@@ -19,8 +19,6 @@
#include <unistd.h>
#include <stdlib.h>
#include <string.h>
-#include <pwd.h>
-#include <grp.h>
#include "defines.h"
#include "log.h"
@@ -82,32 +80,3 @@
}
}
}
-
-void drop_root(uid_t uid, gid_t gid)
-{
- if (uid == 0 || gid == 0) {
- log_line("FATAL - drop_root: attempt to drop root to root?\n");
- exit(EXIT_FAILURE);
- }
-
- if (getgid() == 0) {
- if (setregid(gid, gid) == -1) {
- log_line("FATAL - drop_root: failed to drop real gid == root!\n");
- exit(EXIT_FAILURE);
- }
- }
-
- if (getuid() == 0) {
- if (setreuid(uid, uid) == -1) {
- log_line("FATAL - drop_root: failed to drop real uid == root!\n");
- exit(EXIT_FAILURE);
- }
- }
-
- /* be absolutely sure */
- if (getgid() == 0 || getuid() == 0) {
- log_line("FATAL - drop_root: tried to drop root, but still have root!\n");
- exit(EXIT_FAILURE);
- }
-}
-
diff -urN ndyndns-2.1.orig/Makefile.in ndyndns-2.1/Makefile.in
--- ndyndns-2.1.orig/Makefile.in 2011-01-26 17:02:05.766443748 +0100
+++ ndyndns-2.1/Makefile.in 2011-01-26 17:03:43.338443633 +0100
@@ -1,11 +1,9 @@
#CC = gcc -Wall -Wpointer-arith -Wstrict-prototypes -pedantic
CC = @CC@
-dnslib = -lnss_dns
objects = log.o nstrl.o util.o chroot.o pidfile.o signals.o strlist.o checkip.o $(PLATFORM).o cfg.o ndyndns.o
-CURLINC = @CURLINC@
CURLLIB = @CURLLIB@
VERSION = @VERSION@
-CFLAGS = @CFLAGS@ -Wall -Wextra -pedantic $(CURLINC)
+CFLAGS += -Wall -Wpointer-arith -Wstrict-prototypes -pedantic
PLATFORM = @PLATFORM@
prefix = @prefix@
exec_prefix = @exec_prefix@
@@ -16,7 +14,7 @@
all: ndyndns
ndyndns : $(objects)
- $(CC) $(LDFLAGS) $(dnslib) $(CURLLIB) -o ndyndns $(objects)
+ $(CC) $(LDFLAGS) $(CURLLIB) -o ndyndns $(objects)
ndyndns.o : log.h nstrl.h util.h chroot.h pidfile.h signals.h strlist.h checkip.h $(PLATFORM).h cfg.h
$(CC) $(CFLAGS) -c -o $@ ndyndns.c
diff -urN ndyndns-2.1.orig/ndyndns.c ndyndns-2.1/ndyndns.c
--- ndyndns-2.1.orig/ndyndns.c 2011-01-26 17:02:05.766443748 +0100
+++ ndyndns-2.1/ndyndns.c 2011-01-26 17:04:15.526443092 +0100
@@ -32,8 +32,6 @@
#include <net/if.h>
#include <ctype.h>
#include <time.h>
-#include <pwd.h>
-#include <grp.h>
#include <signal.h>
#include <errno.h>
@@ -897,40 +895,6 @@
strlcpy(pidfile, pidfname, sizeof pidfile);
}
-void cfg_set_user(char *username)
-{
- int t;
- char *p;
- struct passwd *pws;
-
- t = (unsigned int) strtol(username, &p, 10);
- if (*p != '\0') {
- pws = getpwnam(username);
- if (pws) {
- cfg_uid = (int)pws->pw_uid;
- if (!cfg_gid)
- cfg_gid = (int)pws->pw_gid;
- } else suicide("FATAL - Invalid uid specified.\n");
- } else
- cfg_uid = t;
-}
-
-void cfg_set_group(char *groupname)
-{
- int t;
- char *p;
- struct group *grp;
-
- t = (unsigned int) strtol(groupname, &p, 10);
- if (*p != '\0') {
- grp = getgrnam(groupname);
- if (grp) {
- cfg_gid = (int)grp->gr_gid;
- } else suicide("FATAL - Invalid gid specified.\n");
- } else
- cfg_gid = t;
-}
-
void cfg_set_interface(char *interface)
{
strlcpy(ifname, interface, sizeof ifname);
@@ -954,8 +918,6 @@
{"disable-chroot", 0, 0, 'x'},
{"file", 1, 0, 'f'},
{"cfg-stdin", 0, 0, 'F'},
- {"user", 1, 0, 'u'},
- {"group", 1, 0, 'g'},
{"interface", 1, 0, 'i'},
{"remote", 0, 0, 'r'},
{"help", 0, 0, 'h'},
@@ -963,7 +925,7 @@
{0, 0, 0, 0}
};
- c = getopt_long(argc, argv, "rdnp:qc:xf:Fu:g:i:hv", long_options, &option_index);
+ c = getopt_long(argc, argv, "rdnp:qc:xf:i:hv", long_options, &option_index);
if (c == -1) break;
switch (c) {
@@ -983,8 +945,6 @@
" -F, --cfg-stdin read configuration file from standard input\n"
" -p, --pidfile pidfile path\n");
printf(
- " -u, --user user name that ndyndns should run as\n"
- " -g, --group group name that ndyndns should run as\n"
" -i, --interface interface ip to check (default: ppp0)\n"
" -r, --remote get ip from remote dyndns host (overrides -i)\n"
" -h, --help print this help and exit\n"
@@ -1060,14 +1020,6 @@
cfg_set_pidfile(optarg);
break;
- case 'u':
- cfg_set_user(optarg);
- break;
-
- case 'g':
- cfg_set_group(optarg);
- break;
-
case 'i':
cfg_set_interface(optarg);
break;
@@ -1095,7 +1047,6 @@
/* Note that failure cases are handled by called fns. */
imprison(get_chroot());
- drop_root(cfg_uid, cfg_gid);
/* Cover our tracks... */
wipe_chroot();