busybox: add an upstream ntpd fix (#12841)
git-svn-id: svn://svn.openwrt.org/openwrt/trunk@35239 3c298f89-4303-0410-b956-a3cf2f4a3e73master
parent
473bbcc2c2
commit
4dce17cf63
|
@ -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.
|
# This is free software, licensed under the GNU General Public License v2.
|
||||||
# See /LICENSE for more information.
|
# See /LICENSE for more information.
|
||||||
|
@ -9,7 +9,7 @@ include $(TOPDIR)/rules.mk
|
||||||
|
|
||||||
PKG_NAME:=busybox
|
PKG_NAME:=busybox
|
||||||
PKG_VERSION:=1.19.4
|
PKG_VERSION:=1.19.4
|
||||||
PKG_RELEASE:=5
|
PKG_RELEASE:=6
|
||||||
PKG_FLAGS:=essential
|
PKG_FLAGS:=essential
|
||||||
|
|
||||||
PKG_SOURCE:=$(PKG_NAME)-$(PKG_VERSION).tar.bz2
|
PKG_SOURCE:=$(PKG_NAME)-$(PKG_VERSION).tar.bz2
|
||||||
|
|
|
@ -1,5 +1,5 @@
|
||||||
--- busybox-1.19.4/networking/udhcp/common.c
|
--- a/networking/udhcp/common.c
|
||||||
+++ busybox-1.19.4-udhcp/networking/udhcp/common.c
|
+++ b/networking/udhcp/common.c
|
||||||
@@ -29,16 +29,16 @@ const struct dhcp_optflag dhcp_optflags[
|
@@ -29,16 +29,16 @@ const struct dhcp_optflag dhcp_optflags[
|
||||||
// { OPTION_IP | OPTION_LIST , 0x07 }, /* DHCP_LOG_SERVER */
|
// { OPTION_IP | OPTION_LIST , 0x07 }, /* DHCP_LOG_SERVER */
|
||||||
// { OPTION_IP | OPTION_LIST , 0x08 }, /* DHCP_COOKIE_SERVER */
|
// { OPTION_IP | OPTION_LIST , 0x08 }, /* DHCP_COOKIE_SERVER */
|
||||||
|
@ -56,8 +56,8 @@
|
||||||
#if ENABLE_FEATURE_UDHCP_RFC3397
|
#if ENABLE_FEATURE_UDHCP_RFC3397
|
||||||
case OPTION_DNS_STRING:
|
case OPTION_DNS_STRING:
|
||||||
#endif
|
#endif
|
||||||
--- busybox-1.19.4/networking/udhcp/common.h
|
--- a/networking/udhcp/common.h
|
||||||
+++ busybox-1.19.4-udhcp/networking/udhcp/common.h
|
+++ b/networking/udhcp/common.h
|
||||||
@@ -80,6 +80,9 @@ enum {
|
@@ -80,6 +80,9 @@ enum {
|
||||||
OPTION_IP = 1,
|
OPTION_IP = 1,
|
||||||
OPTION_IP_PAIR,
|
OPTION_IP_PAIR,
|
||||||
|
@ -68,8 +68,8 @@
|
||||||
// OPTION_BOOLEAN,
|
// OPTION_BOOLEAN,
|
||||||
OPTION_U8,
|
OPTION_U8,
|
||||||
OPTION_U16,
|
OPTION_U16,
|
||||||
--- busybox-1.19.4/networking/udhcp/dhcpc.c
|
--- a/networking/udhcp/dhcpc.c
|
||||||
+++ busybox-1.19.4-udhcp/networking/udhcp/dhcpc.c
|
+++ b/networking/udhcp/dhcpc.c
|
||||||
@@ -101,6 +101,7 @@ static const uint8_t len_of_option_as_st
|
@@ -101,6 +101,7 @@ static const uint8_t len_of_option_as_st
|
||||||
[OPTION_IP_PAIR ] = sizeof("255.255.255.255 ") * 2,
|
[OPTION_IP_PAIR ] = sizeof("255.255.255.255 ") * 2,
|
||||||
[OPTION_STATIC_ROUTES ] = sizeof("255.255.255.255/32 255.255.255.255 "),
|
[OPTION_STATIC_ROUTES ] = sizeof("255.255.255.255/32 255.255.255.255 "),
|
||||||
|
|
|
@ -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;
|
|
@ -1,6 +1,5 @@
|
||||||
diff -urN busybox-1.19.4/coreutils/date.c busybox-1.19.4.new/coreutils/date.c
|
--- a/coreutils/date.c
|
||||||
--- busybox-1.19.4/coreutils/date.c 2012-02-04 20:24:55.000000000 +0100
|
+++ b/coreutils/date.c
|
||||||
+++ busybox-1.19.4.new/coreutils/date.c 2012-11-23 16:48:21.945200539 +0100
|
|
||||||
@@ -123,6 +123,7 @@
|
@@ -123,6 +123,7 @@
|
||||||
//usage: IF_FEATURE_DATE_ISOFMT(
|
//usage: IF_FEATURE_DATE_ISOFMT(
|
||||||
//usage: "\n -D FMT Use FMT for -d TIME conversion"
|
//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
|
#if ENABLE_FEATURE_DATE_NANO
|
||||||
# include <sys/syscall.h>
|
# include <sys/syscall.h>
|
||||||
#endif
|
#endif
|
||||||
@@ -145,8 +147,9 @@
|
@@ -145,8 +147,9 @@ enum {
|
||||||
OPT_UTC = (1 << 2), /* u */
|
OPT_UTC = (1 << 2), /* u */
|
||||||
OPT_DATE = (1 << 3), /* d */
|
OPT_DATE = (1 << 3), /* d */
|
||||||
OPT_REFERENCE = (1 << 4), /* r */
|
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)
|
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" */
|
/* "universal\0" No_argument "u" */
|
||||||
"date\0" Required_argument "d"
|
"date\0" Required_argument "d"
|
||||||
"reference\0" Required_argument "r"
|
"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 timespec ts;
|
||||||
struct tm tm_time;
|
struct tm tm_time;
|
||||||
char buf_fmt_dt2str[64];
|
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"
|
opt_complementary = "d--s:s--d"
|
||||||
IF_FEATURE_DATE_ISOFMT(":R--I:I--R");
|
IF_FEATURE_DATE_ISOFMT(":R--I:I--R");
|
||||||
IF_LONG_OPTS(applet_long_options = date_longopts;)
|
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:"),
|
IF_FEATURE_DATE_ISOFMT("I::D:"),
|
||||||
&date_str, &date_str, &filename
|
&date_str, &date_str, &filename
|
||||||
IF_FEATURE_DATE_ISOFMT(, &isofmt_arg, &fmt_str2dt));
|
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)
|
if (*argv)
|
||||||
bb_show_usage();
|
bb_show_usage();
|
||||||
|
|
||||||
|
|
|
@ -1,6 +1,5 @@
|
||||||
diff -urN busybox-1.19.4/networking/arping.c busybox-1.19.4.new/networking/arping.c
|
--- a/networking/arping.c
|
||||||
--- busybox-1.19.4/networking/arping.c 2012-02-04 20:24:55.000000000 +0100
|
+++ b/networking/arping.c
|
||||||
+++ busybox-1.19.4.new/networking/arping.c 2012-11-23 17:22:13.753252564 +0100
|
|
||||||
@@ -24,6 +24,8 @@
|
@@ -24,6 +24,8 @@
|
||||||
|
|
||||||
#include <arpa/inet.h>
|
#include <arpa/inet.h>
|
||||||
|
|
|
@ -1,7 +1,6 @@
|
||||||
diff -Naur busybox-1.19.3-old/include/platform.h busybox-1.19.3/include/platform.h
|
--- a/include/platform.h
|
||||||
--- busybox-1.19.3-old/include/platform.h 2011-10-29 05:43:01.000000000 -0600
|
+++ b/include/platform.h
|
||||||
+++ busybox-1.19.3/include/platform.h 2011-12-18 15:53:49.817278374 -0700
|
@@ -443,6 +443,13 @@ typedef unsigned smalluint;
|
||||||
@@ -443,6 +443,13 @@
|
|
||||||
# undef HAVE_NET_ETHERNET_H
|
# undef HAVE_NET_ETHERNET_H
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
|
|
Loading…
Reference in New Issue