busybox: add an upstream ntpd fix (#12841)

git-svn-id: svn://svn.openwrt.org/openwrt/trunk@35239 3c298f89-4303-0410-b956-a3cf2f4a3e73
master
Jo-Philipp Wich 2013-01-19 10:11:34 +00:00
parent 473bbcc2c2
commit 4dce17cf63
7 changed files with 49 additions and 23 deletions

View File

@ -1,5 +1,5 @@
#
# Copyright (C) 2006-2012 OpenWrt.org
# Copyright (C) 2006-2013 OpenWrt.org
#
# This is free software, licensed under the GNU General Public License v2.
# See /LICENSE for more information.
@ -9,7 +9,7 @@ include $(TOPDIR)/rules.mk
PKG_NAME:=busybox
PKG_VERSION:=1.19.4
PKG_RELEASE:=5
PKG_RELEASE:=6
PKG_FLAGS:=essential
PKG_SOURCE:=$(PKG_NAME)-$(PKG_VERSION).tar.bz2

View File

@ -1,5 +1,5 @@
--- busybox-1.19.4/networking/udhcp/common.c
+++ busybox-1.19.4-udhcp/networking/udhcp/common.c
--- a/networking/udhcp/common.c
+++ b/networking/udhcp/common.c
@@ -29,16 +29,16 @@ const struct dhcp_optflag dhcp_optflags[
// { OPTION_IP | OPTION_LIST , 0x07 }, /* DHCP_LOG_SERVER */
// { OPTION_IP | OPTION_LIST , 0x08 }, /* DHCP_COOKIE_SERVER */
@ -56,8 +56,8 @@
#if ENABLE_FEATURE_UDHCP_RFC3397
case OPTION_DNS_STRING:
#endif
--- busybox-1.19.4/networking/udhcp/common.h
+++ busybox-1.19.4-udhcp/networking/udhcp/common.h
--- a/networking/udhcp/common.h
+++ b/networking/udhcp/common.h
@@ -80,6 +80,9 @@ enum {
OPTION_IP = 1,
OPTION_IP_PAIR,
@ -68,8 +68,8 @@
// OPTION_BOOLEAN,
OPTION_U8,
OPTION_U16,
--- busybox-1.19.4/networking/udhcp/dhcpc.c
+++ busybox-1.19.4-udhcp/networking/udhcp/dhcpc.c
--- a/networking/udhcp/dhcpc.c
+++ b/networking/udhcp/dhcpc.c
@@ -101,6 +101,7 @@ static const uint8_t len_of_option_as_st
[OPTION_IP_PAIR ] = sizeof("255.255.255.255 ") * 2,
[OPTION_STATIC_ROUTES ] = sizeof("255.255.255.255/32 255.255.255.255 "),

View File

@ -0,0 +1,29 @@
From b7841cf7b919b16d1bd4619154bf7cb4c22b4ccd Mon Sep 17 00:00:00 2001
From: Paul Marks <paul@pmarks.net>
Date: Mon, 14 Jan 2013 01:39:10 +0000
Subject: ntpd: fix incorrect m_status field in outgoing packets. Closes 5120
When using busybox ntpd with an NTPv3 client and NTPv4 server (or vice
versa), the version numbers can be incorrectly ORed together, yielding
the bogus value of "NTPv7". This makes ntpd unusable with clients
such as Chrony and Windows "Internet Time".
This patch avoids the version mangling, by copying only the Leap
Indicator bits from the server's status field.
Signed-off-by: Paul Marks <paul@pmarks.net>
Signed-off-by: Denys Vlasenko <vda.linux@googlemail.com>
---
(limited to 'networking/ntpd.c')
--- a/networking/ntpd.c
+++ b/networking/ntpd.c
@@ -1794,7 +1794,7 @@ recv_and_process_client_pkt(void /*int f
/* Build a reply packet */
memset(&msg, 0, sizeof(msg));
- msg.m_status = G.stratum < MAXSTRAT ? G.ntp_status : LI_ALARM;
+ msg.m_status = G.stratum < MAXSTRAT ? (G.ntp_status & LI_MASK) : LI_ALARM;
msg.m_status |= (query_status & VERSION_MASK);
msg.m_status |= ((query_status & MODE_MASK) == MODE_CLIENT) ?
MODE_SERVER : MODE_SYM_PAS;

View File

@ -1,6 +1,5 @@
diff -urN busybox-1.19.4/coreutils/date.c busybox-1.19.4.new/coreutils/date.c
--- busybox-1.19.4/coreutils/date.c 2012-02-04 20:24:55.000000000 +0100
+++ busybox-1.19.4.new/coreutils/date.c 2012-11-23 16:48:21.945200539 +0100
--- a/coreutils/date.c
+++ b/coreutils/date.c
@@ -123,6 +123,7 @@
//usage: IF_FEATURE_DATE_ISOFMT(
//usage: "\n -D FMT Use FMT for -d TIME conversion"
@ -17,7 +16,7 @@ diff -urN busybox-1.19.4/coreutils/date.c busybox-1.19.4.new/coreutils/date.c
#if ENABLE_FEATURE_DATE_NANO
# include <sys/syscall.h>
#endif
@@ -145,8 +147,9 @@
@@ -145,8 +147,9 @@ enum {
OPT_UTC = (1 << 2), /* u */
OPT_DATE = (1 << 3), /* d */
OPT_REFERENCE = (1 << 4), /* r */
@ -29,7 +28,7 @@ diff -urN busybox-1.19.4/coreutils/date.c busybox-1.19.4.new/coreutils/date.c
};
static void maybe_set_utc(int opt)
@@ -164,12 +167,15 @@
@@ -164,12 +167,15 @@ static const char date_longopts[] ALIGN1
/* "universal\0" No_argument "u" */
"date\0" Required_argument "d"
"reference\0" Required_argument "r"
@ -45,7 +44,7 @@ diff -urN busybox-1.19.4/coreutils/date.c busybox-1.19.4.new/coreutils/date.c
struct timespec ts;
struct tm tm_time;
char buf_fmt_dt2str[64];
@@ -184,7 +190,7 @@
@@ -184,7 +190,7 @@ int date_main(int argc UNUSED_PARAM, cha
opt_complementary = "d--s:s--d"
IF_FEATURE_DATE_ISOFMT(":R--I:I--R");
IF_LONG_OPTS(applet_long_options = date_longopts;)
@ -54,7 +53,7 @@ diff -urN busybox-1.19.4/coreutils/date.c busybox-1.19.4.new/coreutils/date.c
IF_FEATURE_DATE_ISOFMT("I::D:"),
&date_str, &date_str, &filename
IF_FEATURE_DATE_ISOFMT(, &isofmt_arg, &fmt_str2dt));
@@ -241,6 +247,31 @@
@@ -241,6 +247,31 @@ int date_main(int argc UNUSED_PARAM, cha
if (*argv)
bb_show_usage();

View File

@ -1,6 +1,5 @@
diff -urN busybox-1.19.4/networking/arping.c busybox-1.19.4.new/networking/arping.c
--- busybox-1.19.4/networking/arping.c 2012-02-04 20:24:55.000000000 +0100
+++ busybox-1.19.4.new/networking/arping.c 2012-11-23 17:22:13.753252564 +0100
--- a/networking/arping.c
+++ b/networking/arping.c
@@ -24,6 +24,8 @@
#include <arpa/inet.h>

View File

@ -1,7 +1,6 @@
diff -Naur busybox-1.19.3-old/include/platform.h busybox-1.19.3/include/platform.h
--- busybox-1.19.3-old/include/platform.h 2011-10-29 05:43:01.000000000 -0600
+++ busybox-1.19.3/include/platform.h 2011-12-18 15:53:49.817278374 -0700
@@ -443,6 +443,13 @@
--- a/include/platform.h
+++ b/include/platform.h
@@ -443,6 +443,13 @@ typedef unsigned smalluint;
# undef HAVE_NET_ETHERNET_H
#endif