added my Recipes
This commit is contained in:
@@ -0,0 +1,30 @@
|
||||
From 2ee0c51d81a0a08d64b64ab624074e5f7cd9615a Mon Sep 17 00:00:00 2001
|
||||
From: Khem Raj <raj.khem@gmail.com>
|
||||
Date: Sat, 15 Jul 2017 00:07:32 -0700
|
||||
Subject: [PATCH] ftp: include sys/types.h for u_long
|
||||
|
||||
fixes
|
||||
ftp.c:1091:2: error: unknown type name 'u_long'; did you mean 'long'?
|
||||
u_long a1,a2,a3,a4,p1,p2;
|
||||
^~~~~~
|
||||
|
||||
Signed-off-by: Khem Raj <raj.khem@gmail.com>
|
||||
---
|
||||
ftp/ftp.c | 1 +
|
||||
1 file changed, 1 insertion(+)
|
||||
|
||||
diff --git a/ftp/ftp.c b/ftp/ftp.c
|
||||
index 7a56af6..5dcb513 100644
|
||||
--- a/ftp/ftp.c
|
||||
+++ b/ftp/ftp.c
|
||||
@@ -43,6 +43,7 @@ char ftp_rcsid[] =
|
||||
#include <sys/socket.h>
|
||||
#include <sys/time.h>
|
||||
#include <sys/file.h>
|
||||
+#include <sys/types.h>
|
||||
|
||||
#include <netinet/in.h>
|
||||
#include <netinet/ip.h>
|
||||
--
|
||||
2.13.3
|
||||
|
||||
@@ -0,0 +1,27 @@
|
||||
This adds ARG_MAX define to be _SC_ARG_MAX
|
||||
|
||||
Upstream-Status: Inappropriate [Most distros have their own verion for this fix]
|
||||
|
||||
Signed-off-by: Armin Kuster <akuster808@gmail.com>
|
||||
|
||||
Index: netkit-ftp-0.17/ftp/glob.c
|
||||
===================================================================
|
||||
--- netkit-ftp-0.17.orig/ftp/glob.c
|
||||
+++ netkit-ftp-0.17/ftp/glob.c
|
||||
@@ -50,6 +50,7 @@ char glob_rcsid[] =
|
||||
#include <stdio.h>
|
||||
#include <stdlib.h>
|
||||
#include <string.h>
|
||||
+#include <unistd.h>
|
||||
|
||||
#include "ftp_var.h" /* for protos only */
|
||||
#include "glob.h"
|
||||
@@ -57,6 +58,9 @@ char glob_rcsid[] =
|
||||
#define QUOTE 0200
|
||||
#define TRIM 0177
|
||||
#define eq(a,b) (strcmp(a, b)==0)
|
||||
+#ifndef ARG_MAX
|
||||
+#define ARG_MAX (sysconf(_SC_ARG_MAX))
|
||||
+#endif
|
||||
#define GAVSIZ (ARG_MAX/6)
|
||||
#define isdir(d) ((d.st_mode & S_IFMT) == S_IFDIR)
|
||||
@@ -0,0 +1,50 @@
|
||||
DESCRIPTION = "netkit-ft includes the ftp client."
|
||||
SECTION = "net"
|
||||
HOMEPAGE="ftp://ftp.uk.linux.org/pub/linux/Networking/netkit"
|
||||
LICENSE = "BSD-4-Clause"
|
||||
|
||||
LIC_FILES_CHKSUM = "file://ftp/ftp.c;beginline=2;endline=3;md5=2d40a75a50d83b8f6317b3f53db72bfa"
|
||||
|
||||
SRC_URI = "${DEBIAN_MIRROR}/main/n/netkit-ftp/netkit-ftp_${PV}.orig.tar.gz;name=archive \
|
||||
${DEBIAN_MIRROR}/main/n/netkit-ftp/netkit-ftp_${PV}-34.debian.tar.xz;name=patch34 \
|
||||
file://Add_ARG_MAX_define.patch \
|
||||
file://0001-ftp-include-sys-types.h-for-u_long.patch \
|
||||
"
|
||||
SRC_URI[archive.sha256sum] = "61c913299b81a4671ff089aac821329f7db9bc111aa812993dd585798b700349"
|
||||
SRC_URI[patch34.sha256sum] = "716b984bc6926ed98345fa4e68adcee2efcf08d0f7315d6be8ad6de76f255748"
|
||||
|
||||
inherit autotools-brokensep update-alternatives
|
||||
|
||||
CLEANBROKEN = "1"
|
||||
|
||||
do_configure () {
|
||||
./configure --prefix=${prefix}
|
||||
echo "LDFLAGS=${LDFLAGS}" >> MCONFIG
|
||||
}
|
||||
|
||||
BINMODE = "0755"
|
||||
MANMODE = "0644"
|
||||
|
||||
do_install () {
|
||||
install -d ${D}${bindir}
|
||||
install -d ${D}${mandir}/man1
|
||||
install -d ${D}${mandir}/man5
|
||||
|
||||
install -m${BINMODE} ${S}/ftp/ftp ${D}${bindir}
|
||||
ln -sf ftp ${D}${bindir}/pftp
|
||||
install -m${MANMODE} ${S}/ftp/ftp.1 ${D}${mandir}/man1
|
||||
ln -sf ftp.1 ${D}${mandir}/man1/pftp.1
|
||||
install -m${MANMODE} ${S}/ftp/netrc.5 ${D}${mandir}/man5
|
||||
}
|
||||
|
||||
PACKAGES = "${PN} ${PN}-doc ${BPN}-dbg"
|
||||
FILES:${PN} = "${bindir}/*"
|
||||
FILES:${PN}-doc = "${mandir}"
|
||||
FILES:${PN}-dbg = "${prefix}/src/debug \
|
||||
${bindir}/.debug"
|
||||
|
||||
RDEPENDS:${PN} = "readline"
|
||||
|
||||
ALTERNATIVE_PRIORITY = "100"
|
||||
ALTERNATIVE:${PN} = "ftp"
|
||||
ALTERNATIVE_LINK_NAME[ftp] = "${bindir}/ftp"
|
||||
@@ -0,0 +1,51 @@
|
||||
From 439e3e35f7fcbff1abb782de4b19b31e43ae3449 Mon Sep 17 00:00:00 2001
|
||||
From: Khem Raj <raj.khem@gmail.com>
|
||||
Date: Tue, 27 Jun 2017 09:59:19 -0700
|
||||
Subject: [PATCH] rpcgen: Fix printf formats
|
||||
|
||||
Fixes build with hardening flags
|
||||
|
||||
Signed-off-by: Khem Raj <raj.khem@gmail.com>
|
||||
---
|
||||
rpcgen/rpc_hout.c | 2 +-
|
||||
rpcgen/rpc_tblout.c | 4 ++--
|
||||
2 files changed, 3 insertions(+), 3 deletions(-)
|
||||
|
||||
diff --git a/rpcgen/rpc_hout.c b/rpcgen/rpc_hout.c
|
||||
index 0ef52df..09a7b57 100644
|
||||
--- a/rpcgen/rpc_hout.c
|
||||
+++ b/rpcgen/rpc_hout.c
|
||||
@@ -474,7 +474,7 @@ pdeclaration(const char *name, declaration *dec, int tab,
|
||||
break;
|
||||
}
|
||||
}
|
||||
- f_print(fout, separator );
|
||||
+ f_print(fout, "%s", separator );
|
||||
}
|
||||
|
||||
static int
|
||||
diff --git a/rpcgen/rpc_tblout.c b/rpcgen/rpc_tblout.c
|
||||
index d64bfde..fd62a52 100644
|
||||
--- a/rpcgen/rpc_tblout.c
|
||||
+++ b/rpcgen/rpc_tblout.c
|
||||
@@ -99,7 +99,7 @@ write_table(const definition *def)
|
||||
}
|
||||
else {
|
||||
expected = 1;
|
||||
- f_print(fout, null_entry);
|
||||
+ f_print(fout, "%s", null_entry);
|
||||
}
|
||||
for (proc = vp->procs; proc != NULL; proc = proc->next) {
|
||||
current = atoi(proc->proc_num);
|
||||
@@ -139,7 +139,7 @@ write_table(const definition *def)
|
||||
}
|
||||
|
||||
/* print the table trailer */
|
||||
- f_print(fout, tbl_end);
|
||||
+ f_print(fout, "%s", tbl_end);
|
||||
f_print(fout, tbl_nproc, progvers, progvers, progvers);
|
||||
}
|
||||
}
|
||||
--
|
||||
2.13.2
|
||||
|
||||
@@ -0,0 +1,39 @@
|
||||
This fixes an issue when building with gcc 4.x
|
||||
|
||||
https://github.com/openembedded/openembedded/tree/master/recipes/netkit-rpc/netkit-rpc
|
||||
|
||||
Upstream-Status: Backport
|
||||
|
||||
Signed-off-by: Armin Kuster <akuster808@gmail.com>
|
||||
|
||||
--- netkit-rpc-0.17/rpcgen/rpc_cout.c~gcc4
|
||||
+++ netkit-rpc-0.17/rpcgen/rpc_cout.c
|
||||
@@ -101,8 +101,6 @@
|
||||
case DEF_TYPEDEF:
|
||||
emit_typedef(def);
|
||||
break;
|
||||
- default:
|
||||
- /* can't happen */
|
||||
}
|
||||
print_trailer();
|
||||
}
|
||||
@@ -664,9 +662,6 @@
|
||||
decl->name,decl->array_max);
|
||||
emit_single_in_line(decl,flag,REL_VECTOR);
|
||||
f_print(fout,"\t\t }\n\t\t };\n");
|
||||
-
|
||||
- default:
|
||||
- /* ?... do nothing I guess */
|
||||
}
|
||||
}
|
||||
|
||||
--- netkit-rpc-0.17/rpcgen/rpc_hout.c~gcc4
|
||||
+++ netkit-rpc-0.17/rpcgen/rpc_hout.c
|
||||
@@ -106,8 +106,6 @@
|
||||
f_print(fout, "\n");
|
||||
pprogramdef(def);
|
||||
break;
|
||||
- default:
|
||||
- /* ?... shouldn't happen I guess */
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,51 @@
|
||||
DESCRIPTION = "netkit-rpc includes rpcinfo and rpcgen."
|
||||
HOMEPAGE = "http://ftp.linux.org.uk/pub/linux/Networking/netkit"
|
||||
SECTION = "net"
|
||||
LICENSE = "SPL-1.0"
|
||||
LIC_FILES_CHKSUM = "file://rpcinfo/rpcinfo.c;beginline=2;endline=3;md5=3e6339e3ce266e1122c5ba293e04bc89"
|
||||
|
||||
DEPENDS += "libtirpc"
|
||||
SRC_URI = "http://sources.openembedded.org/${BPN}-${PV}.tar.gz \
|
||||
file://gcc4.patch \
|
||||
file://0001-rpcgen-Fix-printf-formats.patch \
|
||||
"
|
||||
SRC_URI[md5sum] = "67212720482ea1aea9182a98653a9642"
|
||||
SRC_URI[sha256sum] = "421d63b414162237a72867061f1bd3e3752a0d962cd5d30b5e933ddad8a14d3b"
|
||||
|
||||
inherit update-alternatives
|
||||
|
||||
CFLAGS += "-I${STAGING_INCDIR}/tirpc"
|
||||
LIBS += "-ltirpc"
|
||||
|
||||
do_configure () {
|
||||
./configure --prefix=${prefix}
|
||||
echo "LDFLAGS=${LDFLAGS}" > MCONFIG
|
||||
echo "CC=${CC}" >> MCONFIG
|
||||
echo "LD=${LD}" >> MCONFIG
|
||||
echo "CFLAGS=${CFLAGS}" >> MCONFIG
|
||||
echo "LDFLAGS=${LDFLAGS}" >> MCONFIG
|
||||
echo "LIBS=${LIBS}" >> MCONFIG
|
||||
}
|
||||
|
||||
do_compile () {
|
||||
oe_runmake 'CC=${CC}' 'LD=${LD}' 'LDFLAGS=${LDFLAGS}'
|
||||
}
|
||||
|
||||
do_install () {
|
||||
install -d ${D}${bindir}
|
||||
install -d ${D}${mandir}/man1
|
||||
install -d ${D}${mandir}/man8
|
||||
|
||||
# remove strip flag
|
||||
sed -i 's/install -s/install/' rpcinfo/Makefile
|
||||
sed -i 's/install -s/install/' rpcgen/Makefile
|
||||
|
||||
oe_runmake 'INSTALLROOT=${D}' 'BINMODE=0755' \
|
||||
'DAEMONMODE=0755' 'MANMODE=0644' \
|
||||
'BINDIR=${bindir}' 'SBINDIR=${sbindir}' \
|
||||
'MANDIR=${mandir}' install
|
||||
}
|
||||
ALTERNATIVE_PRIORITY = "100"
|
||||
|
||||
ALTERNATIVE:${PN} = "rpcinfo"
|
||||
ALTERNATIVE_LINK_NAME[rpcinfo] = "${bindir}/rpcinfo"
|
||||
@@ -0,0 +1,35 @@
|
||||
From a7831a16c3e0e1463d5eb08a58af152cb75ca976 Mon Sep 17 00:00:00 2001
|
||||
From: Yi Zhao <yi.zhao@windriver.com>
|
||||
Date: Mon, 15 Apr 2019 06:05:58 +0000
|
||||
Subject: [PATCH] Fix CVE-2019-7282 and CVE-2019-7283
|
||||
|
||||
Description: Fix CVE-2018-20685 and CVE-2019-6111
|
||||
Bug-Debian: https://bugs.debian.org/920486
|
||||
Origin: https://github.com/openssh/openssh-portable/commit/6010c0303a422a9c5fa8860c061bf7105eb7f8b2#diff-9f340c228413d5a9a9206ea2ed2bc624R1114
|
||||
|
||||
Upstream-Status: Backport [Debian]
|
||||
[https://sources.debian.org/src/netkit-rsh/0.17-20/debian/patches/fix-CVE-2018-20685-and-CVE-2019-6111.patch]
|
||||
|
||||
CVE: CVE-2019-7282 CVE-2019-7283
|
||||
|
||||
Signed-off-by: Yi Zhao <yi.zhao@windriver.com>
|
||||
---
|
||||
rcp/rcp.c | 5 +++++
|
||||
1 file changed, 5 insertions(+)
|
||||
|
||||
diff --git a/rcp/rcp.c b/rcp/rcp.c
|
||||
index ca61c18..77d8ff8 100644
|
||||
--- a/rcp/rcp.c
|
||||
+++ b/rcp/rcp.c
|
||||
@@ -740,6 +740,11 @@ sink(int argc, char *argv[])
|
||||
size = size * 10 + (*cp++ - '0');
|
||||
if (*cp++ != ' ')
|
||||
SCREWUP("size not delimited");
|
||||
+ if (*cp == '\0' || strchr(cp, '/') != NULL ||
|
||||
+ strcmp(cp, ".") == 0 || strcmp(cp, "..") == 0) {
|
||||
+ error("error: unexpected filename: %s", cp);
|
||||
+ exit(1);
|
||||
+ }
|
||||
if (targisdir) {
|
||||
static char *namebuf;
|
||||
static int cursize;
|
||||
@@ -0,0 +1,27 @@
|
||||
fix host variable when rsh is renamed to other.
|
||||
|
||||
Upstream-Status: Pending
|
||||
|
||||
If rsh is renamed to other, like rsh.netkit, host variable is assigned to
|
||||
rsh.netkit, which is wrong.
|
||||
|
||||
Signed-off-by: Roy.Li <rongqing.li@windriver.com>
|
||||
---
|
||||
rsh/rsh.c | 1 -
|
||||
1 files changed, 0 insertions(+), 1 deletions(-)
|
||||
|
||||
diff --git a/rsh/rsh.c b/rsh/rsh.c
|
||||
index ac594f9..11f533e 100644
|
||||
--- a/rsh/rsh.c
|
||||
+++ b/rsh/rsh.c
|
||||
@@ -100,7 +100,6 @@ main(int argc, char *argv[])
|
||||
#else
|
||||
if (!strcmp(p, "rsh")) asrsh = 1;
|
||||
#endif
|
||||
- else host = p;
|
||||
|
||||
/* handle "rsh host flags" */
|
||||
if (!host && argc > 2 && argv[1][0] != '-') {
|
||||
--
|
||||
1.7.5.4
|
||||
|
||||
@@ -0,0 +1,34 @@
|
||||
Fix build issue do to Deprecate union wait and remove support from wait functions [BZ #19613]
|
||||
|
||||
| rlogin.c: In function 'catch_child':
|
||||
| rlogin.c:463:13: error: storage size of 'status' isn't known
|
||||
| union wait status;
|
||||
|
||||
https://sourceware.org/ml/libc-alpha/2016-02/msg00342.html
|
||||
|
||||
Upstream-Status: Inappropriate [ no upstream maintaner ]
|
||||
|
||||
Signed-off-by: Armin Kuster <akuster@mvista.com>
|
||||
|
||||
Index: netkit-rsh-0.17/rlogin/rlogin.c
|
||||
===================================================================
|
||||
--- netkit-rsh-0.17.orig/rlogin/rlogin.c
|
||||
+++ netkit-rsh-0.17/rlogin/rlogin.c
|
||||
@@ -460,7 +460,7 @@ writeroob(int ignore)
|
||||
void
|
||||
catch_child(int ignore)
|
||||
{
|
||||
- union wait status;
|
||||
+ int status;
|
||||
int pid;
|
||||
|
||||
(void)ignore;
|
||||
@@ -471,7 +471,7 @@ catch_child(int ignore)
|
||||
return;
|
||||
/* if the child (reader) dies, just quit */
|
||||
if (pid < 0 || (pid == childpid && !WIFSTOPPED(status)))
|
||||
- done((int)(status.w_termsig | status.w_retcode));
|
||||
+ done((int)(WTERMSIG(status) | WEXITSTATUS(status)));
|
||||
}
|
||||
/* NOTREACHED */
|
||||
}
|
||||
@@ -0,0 +1,30 @@
|
||||
make rexec support ipv6
|
||||
|
||||
Upstream-Status: Pending
|
||||
|
||||
rexec equals rexec_af(... ,AF_INET) which only support ipv4,
|
||||
use rexec_af(..., AF_UNSPEC) to support both ipv6 and ipv4.
|
||||
|
||||
Signed-off-by: Roy.Li <rongqing.li@windriver.com>
|
||||
---
|
||||
rexec/rexec.c | 4 ++--
|
||||
1 files changed, 2 insertions(+), 2 deletions(-)
|
||||
|
||||
diff --git a/rexec/rexec.c b/rexec/rexec.c
|
||||
index 0913c02..9c8f769 100644
|
||||
--- a/rexec/rexec.c
|
||||
+++ b/rexec/rexec.c
|
||||
@@ -214,8 +214,8 @@ int main(int argc, char *argv[])
|
||||
passwd = getpass("Password: ");
|
||||
}
|
||||
|
||||
- if ( (sock = rexec(&host, port_exec, user_name, passwd, command,
|
||||
- p_to_aux_sock)) < 0 )
|
||||
+ if ( (sock = rexec_af(&host, port_exec, user_name, passwd, command,
|
||||
+ p_to_aux_sock, AF_UNSPEC)) < 0 )
|
||||
{
|
||||
fprintf(stderr,"%s: Error in rexec system call: ",argv[0]);
|
||||
perror(NULL);
|
||||
--
|
||||
1.7.4.1
|
||||
|
||||
@@ -0,0 +1,39 @@
|
||||
netkit-rsh:
|
||||
Allow to build with no PAM enabled.
|
||||
|
||||
Upstream-Status: Inappropriate [ no upstream maintaner ]
|
||||
|
||||
Signed-off-by: Armin Kuster <akuster808@gmail.com>
|
||||
|
||||
Index: netkit-rsh-0.17/rshd/rshd.c
|
||||
===================================================================
|
||||
--- netkit-rsh-0.17.orig/rshd/rshd.c
|
||||
+++ netkit-rsh-0.17/rshd/rshd.c
|
||||
@@ -110,9 +110,11 @@ extern char **environ;
|
||||
static void error(const char *fmt, ...);
|
||||
static void doit(struct sockaddr *fromp, socklen_t fromlen);
|
||||
static char *getstr(char *, size_t, const char *);
|
||||
+#ifdef USE_PAM
|
||||
static int err_conv(
|
||||
int, const struct pam_message **, struct pam_response **, void *
|
||||
);
|
||||
+#endif /* USE_PAM */
|
||||
|
||||
extern int _check_rhosts_file;
|
||||
|
||||
@@ -256,6 +258,7 @@ static void stderr_parent(int sock, int
|
||||
}
|
||||
|
||||
|
||||
+#ifdef USE_PAM
|
||||
static int err_conv(
|
||||
int num_msg, const struct pam_message **msg,
|
||||
struct pam_response **resp, void *appdata_ptr
|
||||
@@ -266,6 +269,7 @@ static int err_conv(
|
||||
(void) appdata_ptr;
|
||||
return PAM_CONV_ERR;
|
||||
}
|
||||
+#endif
|
||||
|
||||
static struct passwd *doauth(const char *remuser,
|
||||
const char *hostname,
|
||||
@@ -0,0 +1,10 @@
|
||||
#%PAM-1.0
|
||||
# For root login to succeed here with pam_securetty, "rexec" must be
|
||||
# listed in /etc/securetty.
|
||||
auth required pam_nologin.so
|
||||
auth required pam_env.so
|
||||
auth include common-auth
|
||||
account include common-account
|
||||
session optional pam_keyinit.so force revoke
|
||||
session include common-session
|
||||
session required pam_loginuid.so
|
||||
@@ -0,0 +1,20 @@
|
||||
# default: off
|
||||
# description:
|
||||
# Rexecd is the server for the rexec program. The server provides remote
|
||||
# execution facilities with authentication based on user names and
|
||||
# passwords.
|
||||
#
|
||||
service exec
|
||||
{
|
||||
socket_type = stream
|
||||
protocol = tcp
|
||||
flags = NAMEINARGS
|
||||
wait = no
|
||||
user = root
|
||||
group = root
|
||||
log_on_success += USERID
|
||||
log_on_failure += USERID
|
||||
server = /usr/sbin/tcpd
|
||||
server_args = /usr/sbin/in.rexecd
|
||||
disable = yes
|
||||
}
|
||||
@@ -0,0 +1,12 @@
|
||||
#%PAM-1.0
|
||||
# For root login to succeed here with pam_securetty, "rlogin" must be
|
||||
# listed in /etc/securetty.
|
||||
auth required pam_nologin.so
|
||||
auth required pam_securetty.so
|
||||
auth required pam_env.so
|
||||
auth include common-auth
|
||||
account include common-account
|
||||
password include common-password
|
||||
session optional pam_keyinit.so force revoke
|
||||
session include common-session
|
||||
session required pam_loginuid.so
|
||||
@@ -0,0 +1,23 @@
|
||||
# default: off
|
||||
# description:
|
||||
# Rlogind is a server for the rlogin program. The server provides remote
|
||||
# execution with authentication based on privileged port numbers from trusted
|
||||
# host
|
||||
#
|
||||
service login
|
||||
{
|
||||
socket_type = stream
|
||||
protocol = tcp
|
||||
flags = NAMEINARGS
|
||||
wait = no
|
||||
user = root
|
||||
group = root
|
||||
log_on_success += USERID
|
||||
log_on_failure += USERID
|
||||
server = /usr/sbin/tcpd
|
||||
server_args = /usr/sbin/in.rlogind -a
|
||||
disable = yes
|
||||
}
|
||||
|
||||
|
||||
|
||||
@@ -0,0 +1,77 @@
|
||||
This fixes a build issue caused by linking order.
|
||||
|
||||
Upstream-Status: Inappropriate
|
||||
Most distos have there own verison of this fix. This was derived by
|
||||
* Fix link order to list libraries after the objects that require them
|
||||
(LP: #771080).
|
||||
|
||||
-- Colin Watson <cjwatson@ubuntu.com> Tue, 13 Sep 2011 10:07:08 +0100
|
||||
|
||||
|
||||
Signed-off-by: Armin Kuster <akuster808@gmail.com>
|
||||
|
||||
Index: netkit-rsh-0.17/rsh/Makefile
|
||||
===================================================================
|
||||
--- netkit-rsh-0.17.orig/rsh/Makefile
|
||||
+++ netkit-rsh-0.17/rsh/Makefile
|
||||
@@ -6,7 +6,7 @@ include ../MRULES
|
||||
OBJS = rsh.o
|
||||
|
||||
rsh: $(OBJS)
|
||||
- $(CC) $(LDFLAGS) $^ $(LIBS) -o $@
|
||||
+ $(CC) $^ -o $@ $(LDFLAGS) $(LIBS)
|
||||
|
||||
install: rsh
|
||||
install -o root -m$(SUIDMODE) rsh $(INSTALLROOT)$(BINDIR)
|
||||
Index: netkit-rsh-0.17/rshd/Makefile
|
||||
===================================================================
|
||||
--- netkit-rsh-0.17.orig/rshd/Makefile
|
||||
+++ netkit-rsh-0.17/rshd/Makefile
|
||||
@@ -11,7 +11,7 @@ LIBS += -ldl -lpam
|
||||
endif
|
||||
|
||||
rshd: $(OBJS)
|
||||
- $(CC) $(LDFLAGS) $^ $(LIBS) -o $@
|
||||
+ $(CC) $^ -o $@ $(LDFLAGS) $(LIBS)
|
||||
|
||||
install: rshd
|
||||
install -m$(DAEMONMODE) rshd $(INSTALLROOT)$(SBINDIR)/in.rshd
|
||||
Index: netkit-rsh-0.17/rlogin/Makefile
|
||||
===================================================================
|
||||
--- netkit-rsh-0.17.orig/rlogin/Makefile
|
||||
+++ netkit-rsh-0.17/rlogin/Makefile
|
||||
@@ -7,7 +7,7 @@ PROG=rlogin
|
||||
OBJS=rlogin.o
|
||||
|
||||
$(PROG): $(OBJS)
|
||||
- $(CC) $(LDFLAGS) $^ $(LIBS) -o $@
|
||||
+ $(CC) $^ -o $@ $(LDFLAGS) $(LIBS)
|
||||
|
||||
install: $(PROG)
|
||||
install -o root -m$(SUIDMODE) $(PROG) $(INSTALLROOT)$(BINDIR)
|
||||
Index: netkit-rsh-0.17/rlogind/Makefile
|
||||
===================================================================
|
||||
--- netkit-rsh-0.17.orig/rlogind/Makefile
|
||||
+++ netkit-rsh-0.17/rlogind/Makefile
|
||||
@@ -13,7 +13,7 @@ LIBS += -ldl -lpam -lpam_misc
|
||||
endif
|
||||
|
||||
rlogind: $(OBJS)
|
||||
- $(CC) $(LDFLAGS) $^ $(LIBS) -o $@
|
||||
+ $(CC) $^ -o $@ $(LDFLAGS) $(LIBS)
|
||||
|
||||
rlogind.o: pathnames.h logwtmp.h rlogind.h ../version.h
|
||||
logwtmp.o: logwtmp.h
|
||||
Index: netkit-rsh-0.17/rexecd/Makefile
|
||||
===================================================================
|
||||
--- netkit-rsh-0.17.orig/rexecd/Makefile
|
||||
+++ netkit-rsh-0.17/rexecd/Makefile
|
||||
@@ -24,7 +24,7 @@ endif
|
||||
CFLAGS += -DRESTRICT_FTP=1
|
||||
|
||||
rexecd: rexecd.o
|
||||
- $(CC) $(LDFLAGS) $^ $(LIBS) -o $@
|
||||
+ $(CC) $^ -o $@ $(LDFLAGS) $(LIBS)
|
||||
|
||||
install: rexecd
|
||||
install -m$(DAEMONMODE) rexecd $(INSTALLROOT)$(SBINDIR)/in.rexecd
|
||||
@@ -0,0 +1,10 @@
|
||||
#%PAM-1.0
|
||||
# For root login to succeed here with pam_securetty, "rsh" must be
|
||||
# listed in /etc/securetty.
|
||||
auth required pam_nologin.so
|
||||
auth required pam_securetty.so
|
||||
auth required pam_env.so
|
||||
account include common-account
|
||||
session optional pam_keyinit.so force revoke
|
||||
session include common-session
|
||||
session required pam_loginuid.so
|
||||
@@ -0,0 +1,21 @@
|
||||
# default: off
|
||||
# description:
|
||||
# The rshd server is a server for the rcmd(3) routine and,
|
||||
# consequently, for the rsh(1) program. The server provides
|
||||
# remote execution facilities with authentication based on
|
||||
# privileged port numbers from trusted hosts.
|
||||
#
|
||||
service shell
|
||||
{
|
||||
socket_type = stream
|
||||
protocol = tcp
|
||||
flags = NAMEINARGS
|
||||
wait = no
|
||||
user = root
|
||||
group = root
|
||||
log_on_success += USERID
|
||||
log_on_failure += USERID
|
||||
server = /usr/sbin/tcpd
|
||||
server_args = /usr/sbin/in.rshd -aL
|
||||
disable = yes
|
||||
}
|
||||
@@ -0,0 +1,105 @@
|
||||
DESCRIPTION = "netkit-rsh includes the rsh daemon and client."
|
||||
SECTION = "net"
|
||||
HOMEPAGE="ftp://ftp.uk.linux.org/pub/linux/Networking/netkit"
|
||||
LICENSE = "BSD-4-Clause"
|
||||
DEPENDS = "xinetd libgcrypt virtual/crypt"
|
||||
|
||||
LIC_FILES_CHKSUM = "file://rsh/rsh.c;endline=32;md5=487b3c637bdc181d32b2a8543d41b606"
|
||||
|
||||
SRC_URI = "${DEBIAN_MIRROR}/main/n/netkit-rsh/netkit-rsh_${PV}.orig.tar.gz;name=archive \
|
||||
${DEBIAN_MIRROR}/main/n/netkit-rsh/netkit-rsh_${PV}-15.diff.gz;name=patch15 \
|
||||
file://rsh-redone_link_order_file.patch \
|
||||
file://no_pam_build_fix.patch \
|
||||
file://rexec.xinetd.netkit \
|
||||
file://rlogin.xinetd.netkit \
|
||||
file://rsh.xinetd.netkit \
|
||||
file://netkit-rsh-0.17-rexec-ipv6.patch \
|
||||
file://fix-host-variable.patch \
|
||||
file://fixup_wait3_api_change.patch \
|
||||
file://CVE-2019-7282-and-CVE-2019-7283.patch \
|
||||
"
|
||||
|
||||
SRC_URI[archive.md5sum] = "65f5f28e2fe22d9ad8b17bb9a10df096"
|
||||
SRC_URI[archive.sha256sum] = "edcac7fa18015f0bc04e573f3f54ae3b638d71335df1ad7dae692779914ad669"
|
||||
SRC_URI[patch15.md5sum] = "655efc0d541b03ca5de0ae506c805ea3"
|
||||
SRC_URI[patch15.sha256sum] = "2bc071c438e8b0ed42a0bd2db2d8b681b27a1e9b1798694d9874733293bc2aa9"
|
||||
|
||||
# Other support files
|
||||
PAM_SRC_URI = "file://rexec.pam \
|
||||
file://rlogin.pam \
|
||||
file://rsh.pam \
|
||||
"
|
||||
SRC_URI += "${@bb.utils.contains('DISTRO_FEATURES', 'pam', '${PAM_SRC_URI}', '', d)}"
|
||||
|
||||
inherit pkgconfig update-alternatives
|
||||
|
||||
CFLAGS += " -D_GNU_SOURCE -Wno-deprecated-declarations"
|
||||
LDFLAGS += " -L${STAGING_LIBDIR} -lutil -lcrypt"
|
||||
|
||||
PACKAGECONFIG ??= ""
|
||||
PACKAGECONFIG:append = " ${@bb.utils.filter('DISTRO_FEATURES', 'pam', d)}"
|
||||
PACKAGECONFIG[pam] = " , --without-pam, libpam, libpam"
|
||||
|
||||
COMPATIBLE_HOST:libc-musl = 'null'
|
||||
|
||||
do_configure () {
|
||||
./configure --prefix=${prefix} --exec-prefix=${exec_prefix}
|
||||
echo "INSTALLROOT=${D}" > MCONFIG
|
||||
|
||||
if [ "${@bb.utils.filter('PACKAGECONFIG', 'pam', d)}" ]; then
|
||||
echo "USE_PAM=1" >> MCONFIG
|
||||
fi
|
||||
|
||||
# didn't want to patch these next changes
|
||||
sed -i 's/netkit-//' ${S}/rsh/pathnames.h
|
||||
sed -i 's/netkit-//' ${S}/rcp/pathnames.h
|
||||
}
|
||||
|
||||
do_install () {
|
||||
install -d ${D}${bindir}
|
||||
install -d ${D}${sbindir}
|
||||
install -d ${D}${mandir}/man1
|
||||
install -d ${D}${mandir}/man8
|
||||
install -d ${D}${sysconfdir}/xinetd.d
|
||||
|
||||
oe_runmake 'INSTALLROOT=${D}' 'BINMODE=0755' \
|
||||
'DAEMONMODE=0755' 'MANMODE=0644' \
|
||||
'SUIDMODE=4755' \
|
||||
'BINDIR=${bindir}' 'SBINDIR=${sbindir}' \
|
||||
'MANDIR=${mandir}' install
|
||||
|
||||
if [ "${@bb.utils.filter('PACKAGECONFIG', 'pam', d)}" ]; then
|
||||
install -d ${D}${sysconfdir}/pam.d
|
||||
install -m 0644 debian/hosts.equiv ${D}/${sysconfdir}
|
||||
install -m 0644 ${WORKDIR}/rexec.pam ${D}/${sysconfdir}/pam.d/rexec
|
||||
install -m 0644 ${WORKDIR}/rlogin.pam ${D}/${sysconfdir}/pam.d/rlogin
|
||||
install -m 0644 ${WORKDIR}/rsh.pam ${D}/${sysconfdir}/pam.d/rsh
|
||||
fi
|
||||
cp ${WORKDIR}/rexec.xinetd.netkit ${D}/${sysconfdir}/xinetd.d/rexec
|
||||
cp ${WORKDIR}/rlogin.xinetd.netkit ${D}/${sysconfdir}/xinetd.d/rlogin
|
||||
cp ${WORKDIR}/rsh.xinetd.netkit ${D}/${sysconfdir}/xinetd.d/rsh
|
||||
}
|
||||
|
||||
PACKAGES = "${PN}-client ${PN}-server ${PN}-doc ${BPN}-dbg"
|
||||
|
||||
FILES:${PN}-client = "${bindir}/*"
|
||||
FILES:${PN}-server = "${sbindir}/* ${sysconfdir}"
|
||||
FILES:${PN}-doc = "${mandir}"
|
||||
FILES:${PN}-dbg = "${prefix}/src/debug \
|
||||
${sbindir}/.debug ${bindir}/.debug"
|
||||
|
||||
ALTERNATIVE_PRIORITY = "80"
|
||||
ALTERNATIVE:${PN}-client = "rcp rexec rlogin rsh"
|
||||
ALTERNATIVE:${PN}-server = "rshd rexecd rlogind"
|
||||
ALTERNATIVE_LINK_NAME[server] = "${bindir}/rshd"
|
||||
ALTERNATIVE_TARGET[rshd] = "${sbindir}/in.rshd"
|
||||
ALTERNATIVE_LINK_NAME[rexecd] = "${bindir}/rexecd"
|
||||
ALTERNATIVE_TARGET[rexecd] = "${sbindir}/in.rexecd"
|
||||
ALTERNATIVE_LINK_NAME[rlogind] = "${bindir}/rlogind"
|
||||
ALTERNATIVE_TARGET[rlogind] = "${sbindir}/in.rlogind"
|
||||
|
||||
RCONFLICTS:${PN}-server += "inetutils-rshd"
|
||||
RPROVIDES:${PN}-server = "rshd"
|
||||
|
||||
RDEPENDS:${PN}-server = "xinetd"
|
||||
RDEPENDS:${PN}-server += "tcp-wrappers"
|
||||
@@ -0,0 +1,120 @@
|
||||
From 5746b68ba9dda87586b3ac88fe84031cbc0015f7 Mon Sep 17 00:00:00 2001
|
||||
From: Khem Raj <raj.khem@gmail.com>
|
||||
Date: Fri, 11 May 2018 12:20:03 -0700
|
||||
Subject: [PATCH] Link with libtirpc
|
||||
|
||||
Signed-off-by: Khem Raj <raj.khem@gmail.com>
|
||||
---
|
||||
Upstream-Status: Pending
|
||||
|
||||
configure | 2 +-
|
||||
rpc.rusersd/rusers_proc.c | 7 +------
|
||||
rpc.rusersd/rusersd.c | 6 +-----
|
||||
rup/rup.c | 2 +-
|
||||
4 files changed, 4 insertions(+), 13 deletions(-)
|
||||
|
||||
--- a/configure
|
||||
+++ b/configure
|
||||
@@ -92,7 +92,6 @@ else
|
||||
echo -n 'Checking if C compiler works... '
|
||||
if (
|
||||
$CC __conftest.c -o __conftest || exit 1
|
||||
- ./__conftest || exit 1
|
||||
) >/dev/null 2>&1; then
|
||||
echo 'yes'
|
||||
else
|
||||
@@ -146,8 +145,7 @@ else
|
||||
|
||||
fi
|
||||
|
||||
-LDFLAGS=
|
||||
-LIBS=
|
||||
+LIBS="$LIBS -ltirpc"
|
||||
|
||||
rm -f __conftest*
|
||||
|
||||
@@ -172,13 +170,11 @@ int main() {
|
||||
EOF
|
||||
if (
|
||||
$CC $CFLAGS __conftest.c -o __conftest || exit 1
|
||||
- ./__conftest || exit 1
|
||||
) >/dev/null 2>&1; then
|
||||
echo 'yes'
|
||||
else
|
||||
if (
|
||||
$CC $CFLAGS -D__USE_BSD_SIGNAL __conftest.c -o __conftest || exit 1
|
||||
- ./__conftest || exit 1
|
||||
) >/dev/null 2>&1; then
|
||||
echo '-D__USE_BSD_SIGNAL'
|
||||
CFLAGS="$CFLAGS -D__USE_BSD_SIGNAL"
|
||||
@@ -231,7 +227,6 @@ if (
|
||||
else
|
||||
if (
|
||||
$CC $CFLAGS -D_GNU_SOURCE __conftest.c -o __conftest || exit 1
|
||||
- ./__conftest || exit 1
|
||||
) >/dev/null 2>&1; then
|
||||
echo '-D_GNU_SOURCE'
|
||||
CFLAGS="$CFLAGS -D_GNU_SOURCE"
|
||||
@@ -262,20 +257,17 @@ int main() {
|
||||
EOF
|
||||
if (
|
||||
$CC $CFLAGS __conftest.c $LIBBSD -o __conftest || exit 1
|
||||
- ./__conftest || exit 1
|
||||
) >/dev/null 2>&1; then
|
||||
echo 'ok'
|
||||
else
|
||||
if (
|
||||
$CC $CFLAGS __conftest.c -lsnprintf $LIBBSD -o __conftest || exit 1
|
||||
- ./__conftest || exit 1
|
||||
) >/dev/null 2>&1; then
|
||||
echo '-lsnprintf'
|
||||
LIBS="$LIBS -lsnprintf"
|
||||
else
|
||||
if (
|
||||
$CC $CFLAGS __conftest.c -ldb $LIBBSD -o __conftest || exit 1
|
||||
- ./__conftest || exit 1
|
||||
) >/dev/null 2>&1; then
|
||||
echo '-ldb'
|
||||
LIBS="$LIBS -ldb"
|
||||
--- a/rpc.rusersd/rusers_proc.c
|
||||
+++ b/rpc.rusersd/rusers_proc.c
|
||||
@@ -57,12 +57,7 @@ char rp_rcsid[] =
|
||||
#define RUT_TIME ut_time
|
||||
#endif
|
||||
|
||||
-/* Glibc strikes again */
|
||||
-#ifdef __GLIBC__
|
||||
- #include <rpcsvc/rusers.h>
|
||||
-#else
|
||||
- #include "rusers.h"
|
||||
-#endif
|
||||
+#include "rusers.h"
|
||||
|
||||
void rusers_service(struct svc_req *rqstp, SVCXPRT *transp);
|
||||
|
||||
--- a/rpc.rusersd/rusersd.c
|
||||
+++ b/rpc.rusersd/rusersd.c
|
||||
@@ -38,11 +38,7 @@ char rusersd_rcsid[] =
|
||||
#include <rpc/pmap_clnt.h>
|
||||
#include <unistd.h>
|
||||
#include <grp.h>
|
||||
-#ifdef __GLIBC__
|
||||
- #include <rpcsvc/rusers.h>
|
||||
-#else
|
||||
- #include "rusers.h"
|
||||
-#endif
|
||||
+#include "rusers.h"
|
||||
|
||||
#include "../version.h"
|
||||
|
||||
--- a/rup/rup.c
|
||||
+++ b/rup/rup.c
|
||||
@@ -48,7 +48,7 @@ char rcsid[] = "$Id: rup.c,v 1.8 2000/07
|
||||
|
||||
#undef FSHIFT /* Use protocol's shift and scale values */
|
||||
#undef FSCALE
|
||||
-#include <rpcsvc/rstat.h>
|
||||
+#include "rstat.h"
|
||||
|
||||
#include "../version.h"
|
||||
|
||||
@@ -0,0 +1,30 @@
|
||||
From c23cc112a480f90950de5cf1de09b1a7e732bf21 Mon Sep 17 00:00:00 2001
|
||||
From: Robert Yang <liezhi.yang@windriver.com>
|
||||
Date: Mon, 15 Dec 2014 18:31:13 -0800
|
||||
Subject: [PATCH] rpc.rusersd/Makefile: fix parallel build issue
|
||||
|
||||
Fixed:
|
||||
rusers.x: No such file or directory
|
||||
Makefile:44: recipe for target 'rusers_xdr.c' failed
|
||||
|
||||
Upstream-Status: Pending
|
||||
|
||||
Signed-off-by: Robert Yang <liezhi.yang@windriver.com>
|
||||
---
|
||||
rpc.rusersd/Makefile | 2 +-
|
||||
1 file changed, 1 insertion(+), 1 deletion(-)
|
||||
|
||||
diff --git a/rpc.rusersd/Makefile b/rpc.rusersd/Makefile
|
||||
index 792f528..65a424a 100644
|
||||
--- a/rpc.rusersd/Makefile
|
||||
+++ b/rpc.rusersd/Makefile
|
||||
@@ -40,5 +40,5 @@ rusers.x:
|
||||
rusers.h: $(RUSERSX) rusers.x
|
||||
$(RPCGEN) -h -o rusers.h rusers.x
|
||||
|
||||
-rusers_xdr.c: $(RUSERSX)
|
||||
+rusers_xdr.c: $(RUSERSX) rusers.x
|
||||
$(RPCGEN) -c -C -o rusers_xdr.c rusers.x
|
||||
--
|
||||
1.7.9.5
|
||||
|
||||
@@ -0,0 +1,72 @@
|
||||
DESCRIPTION = "netkit-rusers includes rusers - Displays who is logged in to machines on local network \
|
||||
rusersd - Logged in users server"
|
||||
HOMEPAGE = "ftp://ftp.uk.linux.org/pub/linux/Networking/netkit"
|
||||
SECTION = "net"
|
||||
LICENSE = "BSD-3-Clause"
|
||||
LIC_FILES_CHKSUM = "file://rusers/rusers.c;beginline=2;endline=3;md5=f4fc634a4ce8c569911196b72b10770e"
|
||||
DEPENDS = " tcp-wrappers libtirpc rpcbind rpcsvc-proto rpcsvc-proto-native"
|
||||
|
||||
SRC_URI = "http://http.debian.net/debian/pool/main/n/${BPN}/${BPN}_${PV}.orig.tar.gz;name=archive \
|
||||
http://http.debian.net/debian/pool/main/n/${BPN}/${BPN}_${PV}-8.diff.gz;name=patch8 \
|
||||
file://rpc.rusersd-Makefile-fix-parallel-build-issue.patch \
|
||||
file://0001-Link-with-libtirpc.patch \
|
||||
"
|
||||
|
||||
SRC_URI[archive.md5sum] = "dc99a80b9fde2ab427c874f88f1c1602"
|
||||
SRC_URI[archive.sha256sum] = "f00138651865ad2dcfec5dedda0cda403cb80c4ab68efcc3bbccafe198c24b6d"
|
||||
SRC_URI[patch8.md5sum] = "1ff498113e0f920d92088092e5570bdc"
|
||||
SRC_URI[patch8.sha256sum] = "14882dbdda4e37baa84d55b54b46c7e063a20fc9e04d1be1a2807643cd0f3067"
|
||||
|
||||
CFLAGS += "-I${STAGING_INCDIR}/tirpc"
|
||||
|
||||
EXTRA_OEMAKE = "RUSERSX=${STAGING_INCDIR}/rpcsvc/rusers.x"
|
||||
|
||||
do_configure () {
|
||||
./configure --prefix=${prefix} --installroot=${D} --with-c-compiler="${CC}"
|
||||
}
|
||||
|
||||
do_install () {
|
||||
install -d ${D}${bindir}
|
||||
install -d ${D}${sbindir}
|
||||
install -d ${D}${mandir}/man1
|
||||
install -d ${D}${mandir}/man8
|
||||
install -d ${D}${sysconfdir}/xinetd.d
|
||||
|
||||
sed -i 's/install -s/install/' rusers/Makefile
|
||||
sed -i 's/install -s/install/' rup/Makefile
|
||||
sed -i 's/install -s/install/' rpc.rusersd/Makefile
|
||||
|
||||
oe_runmake 'INSTALLROOT=${D}' 'BINMODE=0755' \
|
||||
'DAEMONMODE=0755' 'MANMODE=0644' \
|
||||
'BINDIR=${bindir}' 'SBINDIR=${sbindir}' \
|
||||
'MANDIR=${mandir}' install
|
||||
|
||||
# create the xinetd config file
|
||||
cat >rusersd.conf <<EOF
|
||||
service rusersd
|
||||
{
|
||||
disable = yes
|
||||
type = RPC
|
||||
rpc_version = 1-2
|
||||
socket_type = dgram
|
||||
protocol = udp
|
||||
wait = yes
|
||||
user = root
|
||||
server = ${sbindir}/rpc.rusersd
|
||||
}
|
||||
EOF
|
||||
install rusersd.conf ${D}/${sysconfdir}/xinetd.d/rusersd
|
||||
}
|
||||
|
||||
PACKAGES = "${PN}-client ${PN}-server ${PN}-doc ${BPN}-dbg"
|
||||
FILES:${PN}-client = "${bindir}/*"
|
||||
FILES:${PN}-server = "${sbindir}/* ${sysconfdir}"
|
||||
FILES:${PN}-doc = "${mandir}"
|
||||
FILES:${PN}-dbg = "${prefix}/src/debug \
|
||||
${bindir}/.debug ${sbindir}/.debug"
|
||||
|
||||
RDEPENDS:${PN}-server += "tcp-wrappers xinetd rpcbind"
|
||||
|
||||
# http://errors.yoctoproject.org/Errors/Details/186962/
|
||||
COMPATIBLE_HOST:libc-musl = 'null'
|
||||
SKIP_RECIPE[netkit-rusers] ?= "Fails to build rup.c:51:10: fatal error: rstat.h: No such file or directory"
|
||||
@@ -0,0 +1,46 @@
|
||||
From 55ab6f1389261edff5f4c942bc3b0d8e695856d7 Mon Sep 17 00:00:00 2001
|
||||
From: Khem Raj <raj.khem@gmail.com>
|
||||
Date: Wed, 30 Aug 2017 18:11:33 -0700
|
||||
Subject: [PATCH 1/2] Add missing include path to -I options
|
||||
|
||||
Fixes errors like
|
||||
| rwho.c:52:10: fatal error: 'protocols/rwhod.h' file not found
|
||||
| #include <protocols/rwhod.h>
|
||||
| ^~~~~~~~~~~~~~~~~~~
|
||||
|
||||
Signed-off-by: Khem Raj <raj.khem@gmail.com>
|
||||
---
|
||||
Upstream-Status: Pending
|
||||
|
||||
rwho/Makefile | 1 +
|
||||
rwhod/Makefile | 2 ++
|
||||
2 files changed, 3 insertions(+)
|
||||
|
||||
diff --git a/rwho/Makefile b/rwho/Makefile
|
||||
index 6f86388..67b28d4 100644
|
||||
--- a/rwho/Makefile
|
||||
+++ b/rwho/Makefile
|
||||
@@ -6,6 +6,7 @@ include ../MRULES
|
||||
rwho: rwho.o
|
||||
$(CC) $(LDFLAGS) $^ $(LIBS) -o $@
|
||||
|
||||
+CFLAGS += -I../include
|
||||
rwho.o: ../version.h
|
||||
|
||||
install: rwho
|
||||
diff --git a/rwhod/Makefile b/rwhod/Makefile
|
||||
index 772b641..9034218 100644
|
||||
--- a/rwhod/Makefile
|
||||
+++ b/rwhod/Makefile
|
||||
@@ -7,6 +7,8 @@ ifneq ($(USE_GLIBC),1)
|
||||
CFLAGS += -D_GNU_SOURCE
|
||||
endif
|
||||
|
||||
+CFLAGS += -I../include
|
||||
+
|
||||
OBJS = rwhod.o
|
||||
|
||||
rwhod: $(OBJS)
|
||||
--
|
||||
2.14.1
|
||||
|
||||
@@ -0,0 +1,72 @@
|
||||
From 2108213242638fa355f662382f55495d91301858 Mon Sep 17 00:00:00 2001
|
||||
From: Khem Raj <raj.khem@gmail.com>
|
||||
Date: Wed, 30 Aug 2017 18:13:17 -0700
|
||||
Subject: [PATCH 2/2] Fix build issues found with musl
|
||||
|
||||
Signed-off-by: Khem Raj <raj.khem@gmail.com>
|
||||
---
|
||||
Upstream-Status: Pending
|
||||
|
||||
ruptime/ruptime.c | 1 +
|
||||
rwho/rwho.c | 1 +
|
||||
rwhod/rwhod.c | 5 +++--
|
||||
3 files changed, 5 insertions(+), 2 deletions(-)
|
||||
|
||||
--- a/ruptime/ruptime.c
|
||||
+++ b/ruptime/ruptime.c
|
||||
@@ -53,6 +53,7 @@ char ruptime_rcsid[] =
|
||||
#include <string.h>
|
||||
#include <errno.h>
|
||||
#include <time.h>
|
||||
+#include <fcntl.h>
|
||||
|
||||
struct hs {
|
||||
char hs_hostname[MAXHOSTNAMELEN];
|
||||
--- a/rwho/rwho.c
|
||||
+++ b/rwho/rwho.c
|
||||
@@ -49,6 +49,7 @@ char rcsid[] = "$Id: rwho.c,v 1.7 1999/0
|
||||
#include <assert.h>
|
||||
#include <stdio.h>
|
||||
#include <time.h>
|
||||
+#include <fcntl.h>
|
||||
#include <protocols/rwhod.h>
|
||||
|
||||
#include "../version.h"
|
||||
--- a/rwhod/rwhod.c
|
||||
+++ b/rwhod/rwhod.c
|
||||
@@ -76,6 +76,7 @@ char rcsid[] =
|
||||
#include <grp.h>
|
||||
#include <time.h>
|
||||
#include <stdint.h>
|
||||
+#include <fcntl.h>
|
||||
|
||||
#include "../version.h"
|
||||
|
||||
@@ -102,7 +103,7 @@ struct nlist nl[] = {
|
||||
static void broadcaster(void);
|
||||
static int configure(int s);
|
||||
static int verify(const char *name);
|
||||
-#if __GLIBC__ < 2 || (__GLIBC__ == 2 && __GLIBC_MINOR__ < 2)
|
||||
+#if defined(__GLIBC__) && (__GLIBC__ < 2 || (__GLIBC__ == 2 && __GLIBC_MINOR__ < 2))
|
||||
static int getloadavg(double ptr[3], int n);
|
||||
#endif
|
||||
|
||||
@@ -549,7 +550,7 @@ sendpacket(struct whod *wd)
|
||||
}
|
||||
}
|
||||
|
||||
-#if __GLIBC__ < 2 || (__GLIBC__ == 2 && __GLIBC_MINOR__ < 2)
|
||||
+#if defined(__GLIBC__) && (__GLIBC__ < 2 || (__GLIBC__ == 2 && __GLIBC_MINOR__ < 2))
|
||||
/*
|
||||
* Taken from:
|
||||
*
|
||||
--- a/include/protocols/rwhod.h
|
||||
+++ b/include/protocols/rwhod.h
|
||||
@@ -37,6 +37,7 @@
|
||||
#ifndef _RWHOD_H_
|
||||
#define _RWHOD_H_
|
||||
|
||||
+#include <stdint.h>
|
||||
/*
|
||||
* rwho protocol packet format.
|
||||
*/
|
||||
@@ -0,0 +1,71 @@
|
||||
#!/bin/sh
|
||||
|
||||
### BEGIN INIT INFO
|
||||
# Provides: rwhod
|
||||
# Required-Start: $network $remote_fs $syslog
|
||||
# Required-Stop: $network $remote_fs $syslog
|
||||
# Default-Start: 2 3 4 5
|
||||
# Default-Stop: 0 1 6
|
||||
# Short-Description: Server for rwho and ruptime services
|
||||
### END INIT INFO
|
||||
|
||||
PATH=/sbin:/bin:/usr/bin:/usr/sbin
|
||||
|
||||
DAEMON=/usr/sbin/rwhod
|
||||
PIDFILE=/var/run/rwhod.pid
|
||||
CONF_FILE="/etc/default/rwhod"
|
||||
DESC="Who daemon "
|
||||
# default options. Change them in /etc/default/rwhod
|
||||
RWHOD_OPTIONS="-b"
|
||||
|
||||
# rwhod init.d script for ntpdc from ntp.isc.org
|
||||
test -f $DAEMON || exit 0
|
||||
|
||||
# Source function library.
|
||||
. /etc/init.d/functions
|
||||
|
||||
[ -r $CONF_FILE ] && . $CONF_FILE
|
||||
|
||||
startdaemon(){
|
||||
echo -n "Starting $DESC" " rwhod "
|
||||
start-stop-daemon --start --quiet --oknodo --pidfile $PIDFILE --exec $DAEMON -- $RWHOD_OPTIONS
|
||||
echo "done"
|
||||
}
|
||||
stopdaemon(){
|
||||
echo -n "Stopping $DESC" " rwhod "
|
||||
start-stop-daemon --stop --quiet --oknodo --exec $DAEMON
|
||||
echo "done"
|
||||
}
|
||||
|
||||
case "$1" in
|
||||
start)
|
||||
startdaemon
|
||||
;;
|
||||
stop)
|
||||
stopdaemon
|
||||
;;
|
||||
force-reload)
|
||||
stopdaemon
|
||||
startdaemon
|
||||
;;
|
||||
restart)
|
||||
stopdaemon
|
||||
sleep 1
|
||||
startdaemon
|
||||
;;
|
||||
reload)
|
||||
stopdaemon
|
||||
sleep 1
|
||||
startdaemon
|
||||
;;
|
||||
status)
|
||||
status /usr/sbin/rwhod;
|
||||
exit $?
|
||||
;;
|
||||
*)
|
||||
echo "Usage: rwhod { start | stop | status | restart | reload }" >&2
|
||||
exit 1
|
||||
;;
|
||||
esac
|
||||
|
||||
exit 0
|
||||
@@ -0,0 +1,2 @@
|
||||
#Options for the rwhod daemon.
|
||||
RWHOD_OPTIONS="-b"
|
||||
@@ -0,0 +1,108 @@
|
||||
DESCRIPTION = "netkit-rwho includes, ruptime rwho and rwhod (Daemon to maintain data for rwho/ruptime)"
|
||||
HOMEPAGE = "ftp://ftp.uk.linux.org/pub/linux/Networking/netkit"
|
||||
SECTION = "net"
|
||||
LICENSE = "BSD-4-Clause"
|
||||
LIC_FILES_CHKSUM = "file://rwho/rwho.c;beginline=2;endline=3;md5=5a85f13c0142d72fc378e00f15da5b9e"
|
||||
|
||||
SRC_URI = "${DEBIAN_MIRROR}/main/n/netkit-rwho/netkit-rwho_${PV}.orig.tar.gz;name=archive \
|
||||
${DEBIAN_MIRROR}/main/n/netkit-rwho/netkit-rwho_${PV}-13.debian.tar.gz;subdir=${BP};name=patch13 \
|
||||
file://rwhod \
|
||||
file://rwhod.default \
|
||||
file://0001-Add-missing-include-path-to-I-options.patch \
|
||||
file://0002-Fix-build-issues-found-with-musl.patch \
|
||||
"
|
||||
SRC_URI[archive.md5sum] = "0f71620d45d472f89134ba0d74242e75"
|
||||
SRC_URI[archive.sha256sum] = "0409e2ce4bfdb2dacb2c193d0fedfc49bb975cb057c5c6b0ffcca603a1188da7"
|
||||
SRC_URI[patch13.md5sum] = "82ed5a3c6b0bbf00b36508b9787963b9"
|
||||
SRC_URI[patch13.sha256sum] = "53aefa27d98b565bf756db57120c03bd224a238e45699d92076420272a6eba8e"
|
||||
|
||||
inherit autotools-brokensep useradd update-rc.d update-alternatives
|
||||
|
||||
CFLAGS += " -D_GNU_SOURCE"
|
||||
|
||||
# Unlike other Debian packages, net-tools *.diff.gz contains another series of
|
||||
# patches maintained by quilt. So manually apply them before applying other local
|
||||
# patches. Also remove all temp files before leaving, because do_patch() will pop
|
||||
# up all previously applied patches in the start
|
||||
do_patch[depends] += "quilt-native:do_populate_sysroot"
|
||||
netkit_do_patch() {
|
||||
cd ${S}
|
||||
# it's important that we only pop the existing patches when they've
|
||||
# been applied, otherwise quilt will climb the directory tree
|
||||
# and reverse out some completely different set of patches
|
||||
if [ -d ${S}/patches ]; then
|
||||
# whilst this is the default directory, doing it like this
|
||||
# defeats the directory climbing that quilt will otherwise
|
||||
# do; note the directory must exist to defeat this, hence
|
||||
# the test inside which we operate
|
||||
QUILT_PATCHES=${S}/patches quilt pop -a
|
||||
fi
|
||||
if [ -d ${S}/.pc-${BPN} ]; then
|
||||
rm -rf ${S}/.pc
|
||||
mv ${S}/.pc-${BPN} ${S}/.pc
|
||||
QUILT_PATCHES=${S}/debian/patches quilt pop -a
|
||||
rm -rf ${S}/.pc ${S}/debian
|
||||
fi
|
||||
QUILT_PATCHES=${S}/debian/patches quilt push -a
|
||||
mv ${S}/.pc ${S}/.pc-${BPN}
|
||||
}
|
||||
|
||||
do_unpack[cleandirs] += "${S}"
|
||||
|
||||
python do_patch() {
|
||||
bb.build.exec_func('netkit_do_patch', d)
|
||||
bb.build.exec_func('patch_do_patch', d)
|
||||
}
|
||||
|
||||
do_configure () {
|
||||
./configure --prefix=${prefix}
|
||||
echo "LDFLAGS=${LDFLAGS}" >> MCONFIG
|
||||
}
|
||||
|
||||
do_install () {
|
||||
# rwho & ruptime
|
||||
install -d ${D}${bindir}
|
||||
install -d ${D}${mandir}/man1
|
||||
#rwhod
|
||||
install -d ${D}${sbindir}
|
||||
install -d ${D}${mandir}/man8
|
||||
install -d ${D}${sysconfdir}/init.d
|
||||
install -d ${D}${sysconfdir}/default
|
||||
sed -i 's/install -s/install/' rwho/Makefile
|
||||
sed -i 's/install -s/install/' ruptime/Makefile
|
||||
sed -i 's/install -s/install/' rwhod/Makefile
|
||||
oe_runmake 'INSTALLROOT=${D}' 'BINMODE=0755' \
|
||||
'DAEMONMODE=0755' 'MANMODE=0644' \
|
||||
'BINDIR=${bindir}' 'SBINDIR=${sbindir}' \
|
||||
'MANDIR=${mandir}' install
|
||||
|
||||
install -m 0644 ${WORKDIR}/rwhod.default ${D}${sysconfdir}/default/rwhod
|
||||
install -m 755 ${WORKDIR}/rwhod ${D}${sysconfdir}/init.d
|
||||
|
||||
mkdir -p -m 755 ${D}${localstatedir}/spool/rwho
|
||||
chown -R rwhod ${D}${localstatedir}/spool/rwho
|
||||
}
|
||||
pkg_postinst_ontarget:${PN}-server() {
|
||||
${sysconfdir}/init.d/rwhod start
|
||||
}
|
||||
|
||||
pkg_postrm:${PN}-server() {
|
||||
${sysconfdir}/init.d/rwhod stop
|
||||
}
|
||||
|
||||
INITSCRIPT_NAME = "rwhod"
|
||||
INITSCRIPT_PARAM = "defaults 85 15"
|
||||
|
||||
USERADD_PACKAGES = "${PN}-server"
|
||||
GROUPADD_PARAM:${PN}-server = "--system rwhod"
|
||||
USERADD_PARAM:${PN}-server = "--system -g rwhod --home-dir ${localstatedir}/spool/rwho \
|
||||
--no-create-home --shell /bin/false rwhod"
|
||||
|
||||
INSANE_SKIP:${PN} = "already-stripped"
|
||||
|
||||
PACKAGES = "${PN}-client ${PN}-server ${PN}-doc ${BPN}-dbg"
|
||||
FILES:${PN}-client = "${bindir}/*"
|
||||
FILES:${PN}-server = "${sbindir}/* ${localstatedir} ${sysconfdir}/default/* ${sysconfdir}/init.d/*"
|
||||
FILES:${PN}-doc = "${mandir}"
|
||||
FILES:${PN}-dbg = "${prefix}/src/debug \
|
||||
${bindir}/.debug ${sbindir}/.debug"
|
||||
@@ -0,0 +1,457 @@
|
||||
From af89f36fbeb5f6a078b349eed8fc4ad6fbfdf5d1 Mon Sep 17 00:00:00 2001
|
||||
From: Khem Raj <raj.khem@gmail.com>
|
||||
Date: Mon, 16 Jan 2023 15:26:12 -0800
|
||||
Subject: [PATCH] Drop using register keyword
|
||||
|
||||
Its gone since c++17
|
||||
|
||||
Fixes
|
||||
error: ISO C++17 does not allow 'register' storage class specifier [-Wregister]
|
||||
| register char c;
|
||||
| ^~~~~~~~~
|
||||
|
||||
Upstream-Status: Pending
|
||||
Signed-off-by: Khem Raj <raj.khem@gmail.com>
|
||||
---
|
||||
telnet/commands.cc | 14 +++++++-------
|
||||
telnet/defines.h | 1 +
|
||||
telnet/sys_bsd.cc | 2 +-
|
||||
telnet/telnet.cc | 18 +++++++++---------
|
||||
telnet/terminal.cc | 4 ++--
|
||||
telnet/tn3270.cc | 4 ++--
|
||||
telnet/tn3270.o | Bin 4008 -> 4008 bytes
|
||||
telnet/utilities.cc | 6 +++---
|
||||
telnetd/setproctitle.c | 6 +++---
|
||||
telnetd/slc.c | 4 ++--
|
||||
telnetd/state.c | 12 ++++++------
|
||||
telnetd/sys_term.c | 4 ++--
|
||||
telnetd/telnetd.c | 4 ++--
|
||||
telnetd/termstat.c | 4 ++--
|
||||
telnetd/utility.c | 16 ++++++++--------
|
||||
15 files changed, 50 insertions(+), 49 deletions(-)
|
||||
|
||||
--- a/telnet/commands.cc
|
||||
+++ b/telnet/commands.cc
|
||||
@@ -192,8 +192,8 @@ static int margc;
|
||||
static const char *margv[20];
|
||||
|
||||
static void makeargv(void) {
|
||||
- register char *cp, *cp2, c;
|
||||
- register const char **argp = margv;
|
||||
+ char *cp, *cp2, c;
|
||||
+ const char **argp = margv;
|
||||
|
||||
margc = 0;
|
||||
cp = line;
|
||||
@@ -204,7 +204,7 @@ static void makeargv(void) {
|
||||
cp++;
|
||||
}
|
||||
while ((c = *cp)!=0) {
|
||||
- register int inquote = 0;
|
||||
+ int inquote = 0;
|
||||
while (isspace(c))
|
||||
c = *++cp;
|
||||
if (c == '\0')
|
||||
@@ -281,7 +281,7 @@ static const char *control(cc_t c)
|
||||
* was to assign "c" to an unsigned int variable...
|
||||
* Arggg....
|
||||
*/
|
||||
- register unsigned int uic = (unsigned int)c;
|
||||
+ unsigned int uic = (unsigned int)c;
|
||||
|
||||
if (uic == 0x7f)
|
||||
return ("^?");
|
||||
@@ -479,7 +479,7 @@ int send_tncmd(int (*func)(int, int), co
|
||||
long opt;
|
||||
|
||||
if (isprefix(name, "help") || isprefix(name, "?")) {
|
||||
- register int col, len;
|
||||
+ int col, len;
|
||||
|
||||
printf("Usage: send %s <option>\n", cmd);
|
||||
printf("Valid options are:\n\t");
|
||||
@@ -2212,8 +2212,8 @@ static unsigned long sourceroute(char *a
|
||||
static char lsr[44];
|
||||
char *cp, *cp2, *lsrp, *lsrep;
|
||||
struct in_addr sin_addr;
|
||||
- register struct hostent *host = 0;
|
||||
- register char c;
|
||||
+ struct hostent *host = 0;
|
||||
+ char c;
|
||||
|
||||
/*
|
||||
* Verify the arguments, and make sure we have
|
||||
--- a/telnet/defines.h
|
||||
+++ b/telnet/defines.h
|
||||
@@ -52,3 +52,4 @@
|
||||
#define CONTROL(x) ((x)&0x1f) /* CTRL(x) is not portable */
|
||||
|
||||
#define MODE_OUT8 0x8000 /* binary mode sans -opost */
|
||||
+
|
||||
--- a/telnet/sys_bsd.cc
|
||||
+++ b/telnet/sys_bsd.cc
|
||||
@@ -285,7 +285,7 @@ void sys_telnet_init(void) {
|
||||
int process_rings(int netin, int netout, int netex, int ttyin, int ttyout,
|
||||
int poll /* If 0, then block until something to do */)
|
||||
{
|
||||
- register int c, maxfd;
|
||||
+ int c, maxfd;
|
||||
/* One wants to be a bit careful about setting returnValue
|
||||
* to one, since a one implies we did some useful work,
|
||||
* and therefore probably won't be called to block next
|
||||
--- a/telnet/telnet.cc
|
||||
+++ b/telnet/telnet.cc
|
||||
@@ -864,7 +864,7 @@ struct spc {
|
||||
static int slc_mode = SLC_EXPORT;
|
||||
|
||||
void slc_init(void) {
|
||||
- register struct spc *spcp;
|
||||
+ struct spc *spcp;
|
||||
|
||||
localchars = 1;
|
||||
for (spcp = spc_data; spcp < &spc_data[NSLC+1]; spcp++) {
|
||||
@@ -944,7 +944,7 @@ void slc_import(int def) {
|
||||
}
|
||||
|
||||
void slc_export(void) {
|
||||
- register struct spc *spcp;
|
||||
+ struct spc *spcp;
|
||||
|
||||
TerminalDefaultChars();
|
||||
|
||||
@@ -966,8 +966,8 @@ void slc_export(void) {
|
||||
}
|
||||
|
||||
void slc(unsigned char *cp, int len) {
|
||||
- register struct spc *spcp;
|
||||
- register int func,level;
|
||||
+ struct spc *spcp;
|
||||
+ int func,level;
|
||||
|
||||
slc_start_reply();
|
||||
|
||||
@@ -1032,7 +1032,7 @@ void slc(unsigned char *cp, int len) {
|
||||
}
|
||||
|
||||
void slc_check(void) {
|
||||
- register struct spc *spcp;
|
||||
+ struct spc *spcp;
|
||||
|
||||
slc_start_reply();
|
||||
for (spcp = &spc_data[1]; spcp < &spc_data[NSLC+1]; spcp++) {
|
||||
@@ -1080,7 +1080,7 @@ void slc_add_reply(int func, int flags,
|
||||
}
|
||||
|
||||
void slc_end_reply(void) {
|
||||
- register int len;
|
||||
+ int len;
|
||||
|
||||
*slc_replyp++ = IAC;
|
||||
*slc_replyp++ = SE;
|
||||
@@ -1200,7 +1200,7 @@ void env_opt_add(const char *ep) {
|
||||
tp = opt_replyp + (vp ? strlen(vp) * 2 : 0) + strlen(ep) * 2 + 6;
|
||||
if (tp > opt_replyend)
|
||||
{
|
||||
- register int len;
|
||||
+ int len;
|
||||
len = ((tp - opt_reply) + OPT_REPLY_SIZE - 1) & ~(OPT_REPLY_SIZE - 1);
|
||||
opt_replyend = opt_reply + len;
|
||||
opt_reply = (unsigned char *)realloc(opt_reply, len);
|
||||
@@ -1236,7 +1236,7 @@ void env_opt_add(const char *ep) {
|
||||
}
|
||||
|
||||
void env_opt_end(int emptyok) {
|
||||
- register int len;
|
||||
+ int len;
|
||||
|
||||
len = opt_replyp - opt_reply + 2;
|
||||
if (emptyok || len > 6) {
|
||||
@@ -1874,7 +1874,7 @@ static unsigned char *nextitem(unsigned
|
||||
|
||||
static void netclear(void) {
|
||||
#if 0 /* XXX */
|
||||
- register char *thisitem, *next;
|
||||
+ char *thisitem, *next;
|
||||
char *good;
|
||||
#define wewant(p) ((nfrontp > p) && (*p == IAC) && \
|
||||
(p[1] != EC) && (p[1] != EL))
|
||||
--- a/telnet/terminal.cc
|
||||
+++ b/telnet/terminal.cc
|
||||
@@ -569,8 +569,8 @@ struct termspeeds {
|
||||
};
|
||||
|
||||
void TerminalSpeeds(long *ispeed, long *ospeed) {
|
||||
- register struct termspeeds *tp;
|
||||
- register long in, out;
|
||||
+ struct termspeeds *tp;
|
||||
+ long in, out;
|
||||
|
||||
out = cfgetospeed(&old_tc);
|
||||
in = cfgetispeed(&old_tc);
|
||||
--- a/telnet/tn3270.cc
|
||||
+++ b/telnet/tn3270.cc
|
||||
@@ -103,7 +103,7 @@ void init_3270(void) {
|
||||
* done: is this the last of a logical block
|
||||
*/
|
||||
int DataToNetwork(char *buffer, int count, int done) {
|
||||
- register int loop, c;
|
||||
+ int loop, c;
|
||||
int origCount;
|
||||
|
||||
origCount = count;
|
||||
@@ -179,7 +179,7 @@ void outputPurge(void) {
|
||||
* count: how much to send
|
||||
*/
|
||||
int DataToTerminal(char *buffer, int count) {
|
||||
- register int c;
|
||||
+ int c;
|
||||
int origCount;
|
||||
|
||||
origCount = count;
|
||||
--- a/telnet/utilities.cc
|
||||
+++ b/telnet/utilities.cc
|
||||
@@ -252,7 +252,7 @@ void optionstatus(void) {
|
||||
/* pointer: where suboption data sits */
|
||||
/* length: length of suboption data */
|
||||
void printsub(int direction, unsigned char *pointer, int length) {
|
||||
- register int i = 0;
|
||||
+ int i = 0;
|
||||
|
||||
extern int want_status_response;
|
||||
|
||||
@@ -262,7 +262,7 @@ void printsub(int direction, unsigned ch
|
||||
fprintf(NetTrace, "%s IAC SB ",
|
||||
(direction == '<')? "RCVD":"SENT");
|
||||
if (length >= 3) {
|
||||
- register int j;
|
||||
+ int j;
|
||||
|
||||
i = pointer[length-2];
|
||||
j = pointer[length-1];
|
||||
@@ -577,7 +577,7 @@ void printsub(int direction, unsigned ch
|
||||
fprintf(NetTrace, "INFO ");
|
||||
env_common:
|
||||
{
|
||||
- register int noquote = 2;
|
||||
+ int noquote = 2;
|
||||
for (i = 2; i < length; i++ ) {
|
||||
switch (pointer[i]) {
|
||||
case ENV_VAR:
|
||||
--- a/telnetd/setproctitle.c
|
||||
+++ b/telnetd/setproctitle.c
|
||||
@@ -76,7 +76,7 @@ static char Argv0[128]; /* program nam
|
||||
void
|
||||
initsetproctitle(int argc, char **argv, char **envp)
|
||||
{
|
||||
- register int i;
|
||||
+ int i;
|
||||
char *tmp;
|
||||
|
||||
/*
|
||||
@@ -111,8 +111,8 @@ initsetproctitle(int argc, char **argv,
|
||||
void
|
||||
setproctitle(const char *fmt, ...)
|
||||
{
|
||||
- register char *p;
|
||||
- register int i=0;
|
||||
+ char *p;
|
||||
+ int i=0;
|
||||
static char buf[2048];
|
||||
va_list ap;
|
||||
|
||||
--- a/telnetd/slc.c
|
||||
+++ b/telnetd/slc.c
|
||||
@@ -196,7 +196,7 @@ int end_slc(unsigned char **bufp) {
|
||||
* Figure out what to do about the client's slc
|
||||
*/
|
||||
void process_slc(unsigned char func, unsigned char flag, cc_t val) {
|
||||
- register int hislevel, mylevel, ack;
|
||||
+ int hislevel, mylevel, ack;
|
||||
|
||||
/*
|
||||
* Ensure that we know something about this function
|
||||
@@ -260,7 +260,7 @@ void process_slc(unsigned char func, uns
|
||||
* Compare client's request with what we are capable of supporting.
|
||||
*/
|
||||
void change_slc(char func, char flag, cc_t val) {
|
||||
- register int hislevel, mylevel;
|
||||
+ int hislevel, mylevel;
|
||||
|
||||
hislevel = flag & SLC_LEVELBITS;
|
||||
mylevel = slctab[func].defset.flag & SLC_LEVELBITS;
|
||||
--- a/telnetd/state.c
|
||||
+++ b/telnetd/state.c
|
||||
@@ -79,7 +79,7 @@ unsigned char subbuffer[512], *subpointe
|
||||
#define TS_DONT 8 /* dont " */
|
||||
|
||||
void telrcv(void) {
|
||||
- register int c;
|
||||
+ int c;
|
||||
static int state = TS_DATA;
|
||||
|
||||
while (ncc > 0) {
|
||||
@@ -1081,7 +1081,7 @@ void suboption(void) {
|
||||
|
||||
#ifdef LINEMODE
|
||||
case TELOPT_LINEMODE: {
|
||||
- register int request;
|
||||
+ int request;
|
||||
|
||||
if (his_state_is_wont(TELOPT_LINEMODE)) /* Ignore if option disabled */
|
||||
break;
|
||||
@@ -1158,8 +1158,8 @@ void suboption(void) {
|
||||
} /* end of case TELOPT_XDISPLOC */
|
||||
|
||||
case TELOPT_ENVIRON: {
|
||||
- register int c;
|
||||
- register char *cp, *varp, *valp;
|
||||
+ int c;
|
||||
+ char *cp, *varp, *valp;
|
||||
|
||||
if (SB_EOF())
|
||||
return;
|
||||
@@ -1299,8 +1299,8 @@ static void doclientstat(void) {
|
||||
|
||||
void send_status(void) {
|
||||
unsigned char statusbuf[256];
|
||||
- register unsigned char *ncp;
|
||||
- register unsigned char i;
|
||||
+ unsigned char *ncp;
|
||||
+ unsigned char i;
|
||||
|
||||
ncp = statusbuf;
|
||||
|
||||
--- a/telnetd/sys_term.c
|
||||
+++ b/telnetd/sys_term.c
|
||||
@@ -413,7 +413,7 @@ extern int def_tspeed, def_rspeed;
|
||||
|
||||
static int getptyslave(void) {
|
||||
#if 0
|
||||
- register int t = -1;
|
||||
+ int t = -1;
|
||||
|
||||
# ifdef LINEMODE
|
||||
int waslm;
|
||||
@@ -505,7 +505,7 @@ static int getptyslave(void) {
|
||||
* making sure that we have a clean tty.
|
||||
*/
|
||||
static int cleanopen(char *lyne) {
|
||||
- register int t;
|
||||
+ int t;
|
||||
|
||||
/*
|
||||
* Make sure that other people can't open the
|
||||
--- a/telnetd/telnetd.c
|
||||
+++ b/telnetd/telnetd.c
|
||||
@@ -93,7 +93,7 @@ main(int argc, char *argv[], char *env[]
|
||||
struct sockaddr_in from;
|
||||
int on = 1;
|
||||
socklen_t fromlen;
|
||||
- register int ch;
|
||||
+ int ch;
|
||||
|
||||
#if defined(HAS_IPPROTO_IP) && defined(IP_TOS)
|
||||
int tos = -1;
|
||||
@@ -837,7 +837,7 @@ void telnet(int f, int p)
|
||||
|
||||
#ifdef TIOCNOTTY
|
||||
{
|
||||
- register int t;
|
||||
+ int t;
|
||||
t = open(_PATH_TTY, O_RDWR);
|
||||
if (t >= 0) {
|
||||
(void) ioctl(t, TIOCNOTTY, (char *)0);
|
||||
--- a/telnetd/termstat.c
|
||||
+++ b/telnetd/termstat.c
|
||||
@@ -347,7 +347,7 @@ done:
|
||||
* at a time, and if using kludge linemode, then only linemode may be
|
||||
* affected.
|
||||
*/
|
||||
-void clientstat(register int code, register int parm1, register int parm2)
|
||||
+void clientstat(int code, register int parm1, register int parm2)
|
||||
{
|
||||
/*
|
||||
* Get a copy of terminal characteristics.
|
||||
@@ -419,7 +419,7 @@ void clientstat(register int code, regis
|
||||
|
||||
case LM_MODE:
|
||||
{
|
||||
- register int ack, changed;
|
||||
+ int ack, changed;
|
||||
|
||||
/*
|
||||
* Client has sent along a mode mask. If it agrees with
|
||||
--- a/telnetd/utility.c
|
||||
+++ b/telnetd/utility.c
|
||||
@@ -189,7 +189,7 @@ nextitem(char *current, const char *endp
|
||||
return current+3 <= endp ? current+3 : NULL;
|
||||
case SB: /* loop forever looking for the SE */
|
||||
{
|
||||
- register char *look = current+2;
|
||||
+ char *look = current+2;
|
||||
|
||||
while (look < endp) {
|
||||
if ((*look++&0xff) == IAC) {
|
||||
@@ -224,7 +224,7 @@ nextitem(char *current, const char *endp
|
||||
*/
|
||||
void netclear(void)
|
||||
{
|
||||
- register char *thisitem, *next;
|
||||
+ char *thisitem, *next;
|
||||
char *good;
|
||||
#define wewant(p) ((nfrontp > p) && ((*p&0xff) == IAC) && \
|
||||
(nfrontp > p+1 && (((*(p+1)&0xff) != EC) && ((*(p+1)&0xff) != EL))))
|
||||
@@ -354,7 +354,7 @@ netflush(void)
|
||||
* ptr - A pointer to a character string to write
|
||||
* len - How many bytes to write
|
||||
*/
|
||||
-void writenet(register unsigned char *ptr, register int len)
|
||||
+void writenet(unsigned char *ptr, register int len)
|
||||
{
|
||||
/* flush buffer if no room for new data) */
|
||||
if ((&netobuf[BUFSIZ] - nfrontp) < len) {
|
||||
@@ -589,7 +589,7 @@ printoption(const char *fmt, int option)
|
||||
void
|
||||
printsub(char direction, unsigned char *pointer, int length)
|
||||
{
|
||||
- register int i = -1;
|
||||
+ int i = -1;
|
||||
#ifdef AUTHENTICATE
|
||||
char buf[512];
|
||||
#endif
|
||||
@@ -601,7 +601,7 @@ printsub(char direction, unsigned char *
|
||||
netoprintf("td: %s suboption ",
|
||||
direction == '<' ? "recv" : "send");
|
||||
if (length >= 3) {
|
||||
- register int j;
|
||||
+ int j;
|
||||
|
||||
i = pointer[length-2];
|
||||
j = pointer[length-1];
|
||||
@@ -817,7 +817,7 @@ printsub(char direction, unsigned char *
|
||||
|
||||
case TELOPT_STATUS: {
|
||||
const char *cp;
|
||||
- register int j, k;
|
||||
+ int j, k;
|
||||
|
||||
netoprintf("STATUS");
|
||||
|
||||
@@ -914,7 +914,7 @@ printsub(char direction, unsigned char *
|
||||
netoprintf("INFO ");
|
||||
env_common:
|
||||
{
|
||||
- register int noquote = 2;
|
||||
+ int noquote = 2;
|
||||
for (i = 2; i < length; i++ ) {
|
||||
switch (pointer[i]) {
|
||||
case ENV_VAR:
|
||||
@@ -1125,7 +1125,7 @@ printsub(char direction, unsigned char *
|
||||
void
|
||||
printdata(const char *tag, const char *ptr, int cnt)
|
||||
{
|
||||
- register int i;
|
||||
+ int i;
|
||||
char xbuf[30];
|
||||
|
||||
while (cnt) {
|
||||
@@ -0,0 +1,114 @@
|
||||
From 06ed6a6bf25a22902846097d6b6c97e070c2c326 Mon Sep 17 00:00:00 2001
|
||||
From: Seiichi Ishitsuka <ishitsuka.sc@ncos.nec.co.jp>
|
||||
Date: Fri, 1 Jun 2018 14:27:35 +0900
|
||||
Subject: [PATCH] telnetd: Fix deadlock on cleanup
|
||||
|
||||
The cleanup function in telnetd is called both directly and on SIGCHLD
|
||||
signals. This, unfortunately, triggered a deadlock in eglibc 2.9 while
|
||||
running on a 2.6.31.11 kernel.
|
||||
|
||||
What we were seeing is hangs like these:
|
||||
|
||||
(gdb) bt
|
||||
#0 0xb7702424 in __kernel_vsyscall ()
|
||||
#1 0xb7658e61 in __lll_lock_wait_private () from ./lib/libc.so.6
|
||||
#2 0xb767e7b5 in _L_lock_15 () from ./lib/libc.so.6
|
||||
#3 0xb767e6e0 in utmpname () from ./lib/libc.so.6
|
||||
#4 0xb76bcde7 in logout () from ./lib/libutil.so.1
|
||||
#5 0x0804c827 in cleanup ()
|
||||
#6 <signal handler called>
|
||||
#7 0xb7702424 in __kernel_vsyscall ()
|
||||
#8 0xb7641003 in __fcntl_nocancel () from ./lib/libc.so.6
|
||||
#9 0xb767e0c3 in getutline_r_file () from ./lib/libc.so.6
|
||||
#10 0xb767d675 in getutline_r () from ./lib/libc.so.6
|
||||
#11 0xb76bce42 in logout () from ./lib/libutil.so.1
|
||||
#12 0x0804c827 in cleanup ()
|
||||
#13 0x0804a0b5 in telnet ()
|
||||
#14 0x0804a9c3 in main ()
|
||||
|
||||
and what has happened here is that the user closes the telnet session
|
||||
via the escape character. This causes telnetd to call cleanup in frame
|
||||
the SIGCHLD signal is delivered while telnetd is executing cleanup.
|
||||
|
||||
Telnetd then calls the signal handler for SIGCHLD, which is cleanup().
|
||||
Ouch. The actual deadlock is in libc. getutline_r in frame #10 gets the
|
||||
__libc_utmp_lock lock, and utmpname above does the same thing in frame
|
||||
|
||||
The fix registers the SIGCHLD handler as cleanup_sighandler, and makes
|
||||
cleanup disable the SIGCHLD signal before calling cleanup_sighandler.
|
||||
|
||||
Signed-off-by: Simon Kagstrom <simon.kagstrom@netinsight.net>
|
||||
|
||||
The patch was imported from the Ubuntu netkit-telnet package.
|
||||
(https://bugs.launchpad.net/ubuntu/+source/netkit-telnet/+bug/507455)
|
||||
|
||||
A previous patch declaring attributes of functions, but it is not used
|
||||
in upstream.
|
||||
|
||||
Signed-off-by: Seiichi Ishitsuka <ishitsuka.sc@ncos.nec.co.jp>
|
||||
---
|
||||
telnetd/ext.h | 1 +
|
||||
telnetd/sys_term.c | 17 ++++++++++++++++-
|
||||
telnetd/telnetd.c | 2 +-
|
||||
3 files changed, 18 insertions(+), 2 deletions(-)
|
||||
|
||||
diff --git a/telnetd/ext.h b/telnetd/ext.h
|
||||
index b98d6ec..08f9d07 100644
|
||||
--- a/telnetd/ext.h
|
||||
+++ b/telnetd/ext.h
|
||||
@@ -97,6 +97,7 @@ void add_slc(int, int, int);
|
||||
void check_slc(void);
|
||||
void change_slc(int, int, int);
|
||||
void cleanup(int);
|
||||
+void cleanup_sighandler(int);
|
||||
void clientstat(int, int, int);
|
||||
void copy_termbuf(char *, int);
|
||||
void deferslc(void);
|
||||
diff --git a/telnetd/sys_term.c b/telnetd/sys_term.c
|
||||
index 5b4aa84..c4fb0f7 100644
|
||||
--- a/telnetd/sys_term.c
|
||||
+++ b/telnetd/sys_term.c
|
||||
@@ -719,7 +719,7 @@ static void addarg(struct argv_stuff *avs, const char *val) {
|
||||
* This is the routine to call when we are all through, to
|
||||
* clean up anything that needs to be cleaned up.
|
||||
*/
|
||||
-void cleanup(int sig) {
|
||||
+void cleanup_sighandler(int sig) {
|
||||
char *p;
|
||||
(void)sig;
|
||||
|
||||
@@ -742,3 +742,18 @@ void cleanup(int sig) {
|
||||
shutdown(net, 2);
|
||||
exit(0);
|
||||
}
|
||||
+
|
||||
+void cleanup(int sig) {
|
||||
+ sigset_t mask, oldmask;
|
||||
+
|
||||
+ /* Set up the mask of signals to temporarily block. */
|
||||
+ sigemptyset (&mask);
|
||||
+ sigaddset (&mask, SIGCHLD);
|
||||
+
|
||||
+ /* Block SIGCHLD while running cleanup */
|
||||
+ sigprocmask (SIG_BLOCK, &mask, &oldmask);
|
||||
+
|
||||
+ cleanup_sighandler(sig);
|
||||
+ /* Technically not needed since cleanup_sighandler exits */
|
||||
+ sigprocmask (SIG_UNBLOCK, &mask, NULL);
|
||||
+}
|
||||
diff --git a/telnetd/telnetd.c b/telnetd/telnetd.c
|
||||
index 9ace838..788919c 100644
|
||||
--- a/telnetd/telnetd.c
|
||||
+++ b/telnetd/telnetd.c
|
||||
@@ -833,7 +833,7 @@ void telnet(int f, int p)
|
||||
signal(SIGTTOU, SIG_IGN);
|
||||
#endif
|
||||
|
||||
- signal(SIGCHLD, cleanup);
|
||||
+ signal(SIGCHLD, cleanup_sighandler);
|
||||
|
||||
#ifdef TIOCNOTTY
|
||||
{
|
||||
--
|
||||
2.7.4
|
||||
|
||||
@@ -0,0 +1,66 @@
|
||||
From 7a3095d1e9b7c73f9dca56250f433bcfc7cb660e Mon Sep 17 00:00:00 2001
|
||||
From: Khem Raj <raj.khem@gmail.com>
|
||||
Date: Tue, 27 Jun 2017 10:15:34 -0700
|
||||
Subject: [PATCH] telnet/telnetd: Fix print format strings
|
||||
|
||||
Fixes build with hardening flags
|
||||
|
||||
Signed-off-by: Khem Raj <raj.khem@gmail.com>
|
||||
---
|
||||
telnet/utilities.cc | 6 +++---
|
||||
telnetd/utility.c | 6 +++---
|
||||
2 files changed, 6 insertions(+), 6 deletions(-)
|
||||
|
||||
diff --git a/telnet/utilities.cc b/telnet/utilities.cc
|
||||
index 66839ab..36f0731 100644
|
||||
--- a/telnet/utilities.cc
|
||||
+++ b/telnet/utilities.cc
|
||||
@@ -583,17 +583,17 @@ void printsub(int direction, unsigned char *pointer, int length) {
|
||||
case ENV_VAR:
|
||||
if (pointer[1] == TELQUAL_SEND)
|
||||
goto def_case;
|
||||
- fprintf(NetTrace, "\" VAR " + noquote);
|
||||
+ fprintf(NetTrace, "%s", "\" VAR " + noquote);
|
||||
noquote = 2;
|
||||
break;
|
||||
|
||||
case ENV_VALUE:
|
||||
- fprintf(NetTrace, "\" VALUE " + noquote);
|
||||
+ fprintf(NetTrace, "%s", "\" VALUE " + noquote);
|
||||
noquote = 2;
|
||||
break;
|
||||
|
||||
case ENV_ESC:
|
||||
- fprintf(NetTrace, "\" ESC " + noquote);
|
||||
+ fprintf(NetTrace, "%s", "\" ESC " + noquote);
|
||||
noquote = 2;
|
||||
break;
|
||||
|
||||
diff --git a/telnetd/utility.c b/telnetd/utility.c
|
||||
index 29b7da1..75314cb 100644
|
||||
--- a/telnetd/utility.c
|
||||
+++ b/telnetd/utility.c
|
||||
@@ -909,17 +909,17 @@ printsub(char direction, unsigned char *pointer, int length)
|
||||
case ENV_VAR:
|
||||
if (pointer[1] == TELQUAL_SEND)
|
||||
goto def_case;
|
||||
- netoprintf("\" VAR " + noquote);
|
||||
+ netoprintf("%s", "\" VAR " + noquote);
|
||||
noquote = 2;
|
||||
break;
|
||||
|
||||
case ENV_VALUE:
|
||||
- netoprintf("\" VALUE " + noquote);
|
||||
+ netoprintf("%s", "\" VALUE " + noquote);
|
||||
noquote = 2;
|
||||
break;
|
||||
|
||||
case ENV_ESC:
|
||||
- netoprintf("\" ESC " + noquote);
|
||||
+ netoprintf("%s", "\" ESC " + noquote);
|
||||
noquote = 2;
|
||||
break;
|
||||
|
||||
--
|
||||
2.13.2
|
||||
|
||||
@@ -0,0 +1,56 @@
|
||||
From 9c81c8e5bc7782e8ae12c078615abc3c896059f2 Mon Sep 17 00:00:00 2001
|
||||
From: Julius Hemanth Pitti <jpitti@cisco.com>
|
||||
Date: Tue, 14 Jul 2020 22:34:19 -0700
|
||||
Subject: [PATCH] telnetd/utility.c: Fix buffer overflow in netoprintf
|
||||
|
||||
As per man page of vsnprintf, when formated
|
||||
string size is greater than "size"(2nd argument),
|
||||
then vsnprintf returns size of formated string,
|
||||
not "size"(2nd argument).
|
||||
|
||||
netoprintf() was not handling a case where
|
||||
return value of vsnprintf is greater than
|
||||
"size"(2nd argument), results in buffer overflow
|
||||
while adjusting "nfrontp" pointer to point
|
||||
beyond "netobuf" buffer.
|
||||
|
||||
Here is one such case where "nfrontp"
|
||||
crossed boundaries of "netobuf", and
|
||||
pointing to another global variable.
|
||||
|
||||
(gdb) p &netobuf[8255]
|
||||
$5 = 0x55c93afe8b1f <netobuf+8255> ""
|
||||
(gdb) p nfrontp
|
||||
$6 = 0x55c93afe8c20 <terminaltype> "\377"
|
||||
(gdb) p &terminaltype
|
||||
$7 = (char **) 0x55c93afe8c20 <terminaltype>
|
||||
(gdb)
|
||||
|
||||
This resulted in crash of telnetd service
|
||||
with segmentation fault.
|
||||
|
||||
Though this is DoS security bug, I couldn't
|
||||
find any CVE ID for this.
|
||||
|
||||
Upstream-Status: Pending
|
||||
|
||||
Signed-off-by: Julius Hemanth Pitti <jpitti@cisco.com>
|
||||
---
|
||||
telnetd/utility.c | 2 +-
|
||||
1 file changed, 1 insertion(+), 1 deletion(-)
|
||||
|
||||
diff --git a/telnetd/utility.c b/telnetd/utility.c
|
||||
index b9a46a6..4811f14 100644
|
||||
--- a/telnetd/utility.c
|
||||
+++ b/telnetd/utility.c
|
||||
@@ -66,7 +66,7 @@ netoprintf(const char *fmt, ...)
|
||||
len = vsnprintf(nfrontp, maxsize, fmt, ap);
|
||||
va_end(ap);
|
||||
|
||||
- if (len<0 || len==maxsize) {
|
||||
+ if (len<0 || len>=maxsize) {
|
||||
/* didn't fit */
|
||||
netflush();
|
||||
}
|
||||
--
|
||||
2.19.1
|
||||
@@ -0,0 +1,27 @@
|
||||
From 23b068e695881be0e8205ecccadf775fc3d5889d Mon Sep 17 00:00:00 2001
|
||||
From: Khem Raj <raj.khem@gmail.com>
|
||||
Date: Tue, 6 Sep 2022 21:25:50 -0700
|
||||
Subject: [PATCH] utility: Include time.h form time() and strftime() prototypes
|
||||
|
||||
Upstream-Status: Pending
|
||||
|
||||
Signed-off-by: Khem Raj <raj.khem@gmail.com>
|
||||
---
|
||||
telnetd/utility.c | 1 +
|
||||
1 file changed, 1 insertion(+)
|
||||
|
||||
diff --git a/telnetd/utility.c b/telnetd/utility.c
|
||||
index 4811f14..b539777 100644
|
||||
--- a/telnetd/utility.c
|
||||
+++ b/telnetd/utility.c
|
||||
@@ -40,6 +40,7 @@ char util_rcsid[] =
|
||||
#define PRINTOPTIONS
|
||||
|
||||
#include <stdarg.h>
|
||||
+#include <time.h> /* for time() anf strftime() */
|
||||
#include <sys/utsname.h>
|
||||
|
||||
#ifdef AUTHENTICATE
|
||||
--
|
||||
2.37.3
|
||||
|
||||
@@ -0,0 +1,112 @@
|
||||
From 6ab007dbb1958371abff2eaaad2b26da89b3c74e Mon Sep 17 00:00:00 2001
|
||||
From: Yi Zhao <yi.zhao@windriver.com>
|
||||
Date: Fri, 24 Apr 2020 09:43:44 +0800
|
||||
Subject: [PATCH] telnetd/utility.c: fix CVE-2020-10188
|
||||
|
||||
Upstream-Status: Backport
|
||||
[Fedora: https://src.fedoraproject.org/rpms/telnet/raw/master/f/telnet-0.17-overflow-exploit.patch]
|
||||
|
||||
CVE: CVE-2020-10188
|
||||
|
||||
Signed-off-by: Yi Zhao <yi.zhao@windriver.com>
|
||||
---
|
||||
telnetd/utility.c | 32 +++++++++++++++++++++-----------
|
||||
1 file changed, 21 insertions(+), 11 deletions(-)
|
||||
|
||||
diff --git a/telnetd/utility.c b/telnetd/utility.c
|
||||
index 75314cb..b9a46a6 100644
|
||||
--- a/telnetd/utility.c
|
||||
+++ b/telnetd/utility.c
|
||||
@@ -169,31 +169,38 @@ void ptyflush(void)
|
||||
*/
|
||||
static
|
||||
char *
|
||||
-nextitem(char *current)
|
||||
+nextitem(char *current, const char *endp)
|
||||
{
|
||||
+ if (current >= endp) {
|
||||
+ return NULL;
|
||||
+ }
|
||||
if ((*current&0xff) != IAC) {
|
||||
return current+1;
|
||||
}
|
||||
+ if (current+1 >= endp) {
|
||||
+ return NULL;
|
||||
+ }
|
||||
switch (*(current+1)&0xff) {
|
||||
case DO:
|
||||
case DONT:
|
||||
case WILL:
|
||||
case WONT:
|
||||
- return current+3;
|
||||
+ return current+3 <= endp ? current+3 : NULL;
|
||||
case SB: /* loop forever looking for the SE */
|
||||
{
|
||||
register char *look = current+2;
|
||||
|
||||
- for (;;) {
|
||||
+ while (look < endp) {
|
||||
if ((*look++&0xff) == IAC) {
|
||||
- if ((*look++&0xff) == SE) {
|
||||
+ if (look < endp && (*look++&0xff) == SE) {
|
||||
return look;
|
||||
}
|
||||
}
|
||||
}
|
||||
+ return NULL;
|
||||
}
|
||||
default:
|
||||
- return current+2;
|
||||
+ return current+2 <= endp ? current+2 : NULL;
|
||||
}
|
||||
} /* end of nextitem */
|
||||
|
||||
@@ -219,7 +226,7 @@ void netclear(void)
|
||||
register char *thisitem, *next;
|
||||
char *good;
|
||||
#define wewant(p) ((nfrontp > p) && ((*p&0xff) == IAC) && \
|
||||
- ((*(p+1)&0xff) != EC) && ((*(p+1)&0xff) != EL))
|
||||
+ (nfrontp > p+1 && (((*(p+1)&0xff) != EC) && ((*(p+1)&0xff) != EL))))
|
||||
|
||||
#if defined(ENCRYPT)
|
||||
thisitem = nclearto > netobuf ? nclearto : netobuf;
|
||||
@@ -227,7 +234,7 @@ void netclear(void)
|
||||
thisitem = netobuf;
|
||||
#endif
|
||||
|
||||
- while ((next = nextitem(thisitem)) <= nbackp) {
|
||||
+ while ((next = nextitem(thisitem, nbackp)) != NULL && next <= nbackp) {
|
||||
thisitem = next;
|
||||
}
|
||||
|
||||
@@ -239,20 +246,23 @@ void netclear(void)
|
||||
good = netobuf; /* where the good bytes go */
|
||||
#endif
|
||||
|
||||
- while (nfrontp > thisitem) {
|
||||
+ while (thisitem != NULL && nfrontp > thisitem) {
|
||||
if (wewant(thisitem)) {
|
||||
int length;
|
||||
|
||||
next = thisitem;
|
||||
do {
|
||||
- next = nextitem(next);
|
||||
- } while (wewant(next) && (nfrontp > next));
|
||||
+ next = nextitem(next, nfrontp);
|
||||
+ } while (next != NULL && wewant(next) && (nfrontp > next));
|
||||
+ if (next == NULL) {
|
||||
+ next = nfrontp;
|
||||
+ }
|
||||
length = next-thisitem;
|
||||
bcopy(thisitem, good, length);
|
||||
good += length;
|
||||
thisitem = next;
|
||||
} else {
|
||||
- thisitem = nextitem(thisitem);
|
||||
+ thisitem = nextitem(thisitem, nfrontp);
|
||||
}
|
||||
}
|
||||
|
||||
--
|
||||
2.7.4
|
||||
|
||||
File diff suppressed because it is too large
Load Diff
@@ -0,0 +1,41 @@
|
||||
From 31362e4c0d02b4a2b952ad0dd32acfb573c442f3 Mon Sep 17 00:00:00 2001
|
||||
From: Li xin <lixin.fnst@cn.fujitsu.com>
|
||||
Date: Fri, 28 Nov 2014 07:17:40 +0900
|
||||
Subject: [PATCH 2/2] WARNING Fix and modify "CFLAGS"
|
||||
|
||||
WARNING: QA Issue: File '/usr/sbin/in.telnetd' from netkit-telnet was
|
||||
already stripped, this will prevent future debugging! [already-stripped]
|
||||
|
||||
Upstream-Status: Pending
|
||||
|
||||
Signed-off-by: Li Xin <lixin.fnst@cn.fujitsu.com>
|
||||
---
|
||||
telnetd/Makefile | 5 +++--
|
||||
1 file changed, 3 insertions(+), 2 deletions(-)
|
||||
|
||||
diff --git a/telnetd/Makefile b/telnetd/Makefile
|
||||
index 72650b4..a4cf9fa 100644
|
||||
--- a/telnetd/Makefile
|
||||
+++ b/telnetd/Makefile
|
||||
@@ -9,7 +9,8 @@ include ../MRULES
|
||||
# take out -DPARANOID_TTYS.
|
||||
|
||||
CFLAGS += '-DISSUE_FILE="/etc/issue.net"' -DPARANOID_TTYS \
|
||||
- -DNO_REVOKE -DKLUDGELINEMODE -DDIAGNOSTICS
|
||||
+ -DNO_REVOKE -DKLUDGELINEMODE -DDIAGNOSTICS \
|
||||
+ -DLOGIN_WRAPPER=\"/${libdir}/telnetlogin\"
|
||||
# LIBS += $(LIBTERMCAP)
|
||||
|
||||
OBJS = telnetd.o state.o termstat.o slc.o sys_term.o utility.o \
|
||||
@@ -27,7 +28,7 @@ $(OBJS): defs.h ext.h pathnames.h telnetd.h logwtmp.h logout.h setproctitle.h
|
||||
telnetd.o: ../version.h
|
||||
|
||||
install: telnetd
|
||||
- install -s -m$(DAEMONMODE) telnetd $(INSTALLROOT)$(SBINDIR)/in.telnetd
|
||||
+ install -m$(DAEMONMODE) telnetd $(INSTALLROOT)$(SBINDIR)/in.telnetd
|
||||
install -m$(MANMODE) issue.net.5 $(INSTALLROOT)$(MANDIR)/man5/
|
||||
install -m$(MANMODE) telnetd.8 $(INSTALLROOT)$(MANDIR)/man8/in.telnetd.8
|
||||
ln -sf in.telnetd.8 $(INSTALLROOT)$(MANDIR)/man8/telnetd.8
|
||||
--
|
||||
1.8.4.2
|
||||
|
||||
@@ -0,0 +1,48 @@
|
||||
To support the cross-compile
|
||||
|
||||
Upstream-Status: Pending
|
||||
|
||||
make the configure to support the cross-compile, by only to compile the
|
||||
target, and not to run it
|
||||
|
||||
Roy Li <rongqing.li@windriver.com>
|
||||
Index: netkit-telnet-0.17/configure
|
||||
===================================================================
|
||||
--- netkit-telnet-0.17.orig/configure 2008-11-23 22:01:26.000000000 +0100
|
||||
+++ netkit-telnet-0.17/configure 2008-11-23 22:05:00.000000000 +0100
|
||||
@@ -94,7 +94,7 @@
|
||||
echo -n 'Checking if C compiler works... '
|
||||
if (
|
||||
$CC __conftest.c -o __conftest || exit 1
|
||||
- ./__conftest || exit 1
|
||||
+ # Idiots belong shot! ./__conftest || exit 1
|
||||
) >/dev/null 2>&1; then
|
||||
echo 'yes'
|
||||
else
|
||||
@@ -141,7 +141,7 @@
|
||||
echo -n 'Checking if C++ compiler works... '
|
||||
if (
|
||||
$CXX __conftest.cc -o __conftest || exit 1
|
||||
- ./__conftest || exit 1
|
||||
+ # Iditios belong shot! ./__conftest || exit 1
|
||||
) >/dev/null 2>&1; then
|
||||
echo 'yes'
|
||||
else
|
||||
@@ -284,7 +284,7 @@
|
||||
else
|
||||
if (
|
||||
$CXX $CXXFLAGS -D__USE_BSD_SIGNAL __conftest.cc -o __conftest || exit 1
|
||||
- ./__conftest || exit 1
|
||||
+ # running still does not work./__conftest || exit 1
|
||||
) >/dev/null 2>&1; then
|
||||
echo '-D__USE_BSD_SIGNAL'
|
||||
CFLAGS="$CFLAGS -D__USE_BSD_SIGNAL"
|
||||
@@ -501,7 +501,7 @@
|
||||
EOF
|
||||
if (
|
||||
$CXX $CXXFLAGS __conftest.cc $LIBBSD -o __conftest || exit 1
|
||||
- ./__conftest || exit 1
|
||||
+ # argh! morons!./__conftest || exit 1
|
||||
) >/dev/null 2>&1; then
|
||||
echo 'ok'
|
||||
else
|
||||
@@ -0,0 +1,14 @@
|
||||
# default: on
|
||||
# description: The telnet server serves telnet sessions; it uses \
|
||||
# unencrypted username/password pairs for authentication.
|
||||
service telnet
|
||||
{
|
||||
flags = REUSE
|
||||
socket_type = stream
|
||||
wait = no
|
||||
user = root
|
||||
server = /usr/sbin/in.telnetd
|
||||
log_on_failure += USERID
|
||||
disable = yes
|
||||
}
|
||||
|
||||
@@ -0,0 +1,73 @@
|
||||
DESCRIPTION = "netkit-telnet includes the telnet daemon and client."
|
||||
HOMEPAGE = "http://www.hcs.harvard.edu/~dholland/computers/netkit.html"
|
||||
SECTION = "net"
|
||||
DEPENDS = "ncurses"
|
||||
LICENSE = "BSD-4-Clause"
|
||||
LIC_FILES_CHKSUM = "file://telnet/telnet.cc;beginline=2;endline=3;md5=780868e7b566313e70cb701560ca95ef"
|
||||
|
||||
SRC_URI = "${DEBIAN_MIRROR}/main/n/netkit-telnet/netkit-telnet_${PV}.orig.tar.gz \
|
||||
file://To-aviod-buffer-overflow-in-telnet.patch \
|
||||
file://Warning-fix-in-the-step-of-install.patch \
|
||||
file://telnet-xinetd \
|
||||
file://cross-compile.patch \
|
||||
file://0001-telnet-telnetd-Fix-print-format-strings.patch \
|
||||
file://0001-telnet-telnetd-Fix-deadlock-on-cleanup.patch \
|
||||
file://CVE-2020-10188.patch \
|
||||
file://0001-telnetd-utility.c-Fix-buffer-overflow-in-netoprintf.patch \
|
||||
file://0001-utility-Include-time.h-form-time-and-strftime-protot.patch \
|
||||
file://0001-Drop-using-register-keyword.patch \
|
||||
"
|
||||
|
||||
UPSTREAM_CHECK_URI = "${DEBIAN_MIRROR}/main/n/netkit-telnet/"
|
||||
UPSTREAM_CHECK_REGEX = "(?P<pver>\d+(\.\d+)+)\.orig\.tar"
|
||||
|
||||
EXTRA_OEMAKE = "INSTALLROOT=${D} SBINDIR=${sbindir} DAEMONMODE=755 \
|
||||
MANMODE=644 MANDIR=${mandir}"
|
||||
|
||||
do_configure () {
|
||||
./configure --prefix=${prefix}
|
||||
sed -e 's#^CFLAGS=\(.*\)$#CFLAGS= -D_GNU_SOURCE \1#' \
|
||||
-e 's#^CXXFLAGS=\(.*\)$#CXXFLAGS= -D_GNU_SOURCE \1#' \
|
||||
-e 's#^LDFLAGS=.*$#LDFLAGS= ${LDFLAGS}#' \
|
||||
-i MCONFIG
|
||||
}
|
||||
|
||||
do_compile () {
|
||||
oe_runmake 'CC=${CC}' 'LD=${LD}' 'LDFLAGS=${LDFLAGS}' SUB=telnet
|
||||
oe_runmake 'CC=${CC}' 'LD=${LD}' 'LDFLAGS=${LDFLAGS}' LIBS=-lutil SUB=telnetd
|
||||
oe_runmake 'CC=${CC}' 'LD=${LD}' 'LDFLAGS=${LDFLAGS}' SUB=telnetlogin
|
||||
}
|
||||
|
||||
do_install () {
|
||||
install -d ${D}${bindir}
|
||||
install -m 0755 telnet/telnet ${D}${bindir}/telnet.${PN}
|
||||
install -d ${D}${sbindir}
|
||||
install -d ${D}${mandir}/man1
|
||||
install -d ${D}${mandir}/man5
|
||||
install -d ${D}${mandir}/man8
|
||||
oe_runmake SUB=telnetd install
|
||||
rm -rf ${D}${mandir}/man1
|
||||
install -D -m 4750 ${B}/telnetlogin/telnetlogin ${D}/${libdir}/telnetlogin
|
||||
# fix up hardcoded paths
|
||||
sed -i -e 's,/usr/sbin/,${sbindir}/,' ${WORKDIR}/telnet-xinetd
|
||||
install -d ${D}/etc/xinetd.d/
|
||||
install -p -m644 ${WORKDIR}/telnet-xinetd ${D}/etc/xinetd.d/telnet
|
||||
}
|
||||
|
||||
inherit update-alternatives
|
||||
|
||||
ALTERNATIVE_PRIORITY = "100"
|
||||
ALTERNATIVE:${PN} = "telnet"
|
||||
ALTERNATIVE_LINK_NAME[telnet] = "${bindir}/telnet"
|
||||
ALTERNATIVE_TARGET[telnet] = "${bindir}/telnet.${PN}"
|
||||
|
||||
ALTERNATIVE:${PN}-doc = "telnetd.8"
|
||||
ALTERNATIVE_LINK_NAME[telnetd.8] = "${mandir}/man8/telnetd.8"
|
||||
|
||||
SRC_URI[md5sum] = "d6beabaaf53fe6e382c42ce3faa05a36"
|
||||
SRC_URI[sha256sum] = "9c80d5c7838361a328fb6b60016d503def9ce53ad3c589f3b08ff71a2bb88e00"
|
||||
FILES:${PN} += "${sbindir}/in.* ${libdir}/* ${sysconfdir}/xinetd.d/*"
|
||||
|
||||
# http://errors.yoctoproject.org/Errors/Details/186954/
|
||||
COMPATIBLE_HOST:libc-musl = 'null'
|
||||
RCONFLICTS:${PN} = "inetutils-telnetd"
|
||||
@@ -0,0 +1,27 @@
|
||||
From fa57e161fc953264a75d50a787cb83983e60acc7 Mon Sep 17 00:00:00 2001
|
||||
From: Khem Raj <raj.khem@gmail.com>
|
||||
Date: Wed, 30 Aug 2017 18:30:02 -0700
|
||||
Subject: [PATCH] tftp: Include missing fcntl.h
|
||||
|
||||
Signed-off-by: Khem Raj <raj.khem@gmail.com>
|
||||
---
|
||||
Upstream-Status: Pending
|
||||
|
||||
tftp/main.c | 1 +
|
||||
1 file changed, 1 insertion(+)
|
||||
|
||||
diff --git a/tftp/main.c b/tftp/main.c
|
||||
index 8c54843..5c9b698 100644
|
||||
--- a/tftp/main.c
|
||||
+++ b/tftp/main.c
|
||||
@@ -63,6 +63,7 @@ char main_rcsid[] =
|
||||
#include <ctype.h>
|
||||
#include <netdb.h>
|
||||
#include <unistd.h>
|
||||
+#include <fcntl.h>
|
||||
|
||||
#include "tftpsubs.h" /* for mysignal() */
|
||||
|
||||
--
|
||||
2.14.1
|
||||
|
||||
@@ -0,0 +1,11 @@
|
||||
service tftp
|
||||
{
|
||||
disable = no
|
||||
socket_type = dgram
|
||||
port = 69
|
||||
protocol = udp
|
||||
wait = yes
|
||||
user = nobody
|
||||
server = /usr/sbin/in.tftpd
|
||||
server_args = /tftpboot
|
||||
}
|
||||
@@ -0,0 +1,59 @@
|
||||
SUMMARY = "tftp - Trivial file transfer protocol client"
|
||||
SECTION = "net"
|
||||
LICENSE = "BSD-4-Clause"
|
||||
DEPENDS = "tcp-wrappers"
|
||||
|
||||
LIC_FILES_CHKSUM = "file://tftp/tftp.c;beginline=2;endline=3;md5=84d2cfe1e60863a7d82648734ba4d30c"
|
||||
|
||||
SRC_URI = "${DEBIAN_MIRROR}/main/n/${BPN}/${BPN}_${PV}.orig.tar.gz;name=archive \
|
||||
${DEBIAN_MIRROR}/main/n/${BPN}/${BPN}_${PV}-18.diff.gz;name=patch18 \
|
||||
file://tftp.conf \
|
||||
file://0001-tftp-Include-missing-fcntl.h.patch \
|
||||
"
|
||||
|
||||
SRC_URI[archive.md5sum] = "b7262c798e2ff50e29c2ff50dfd8d6a8"
|
||||
SRC_URI[archive.sha256sum] = "3a43c0010d4e61f412563fd83769d4667d8b8e82903526d21cb9205fe55ad14d"
|
||||
SRC_URI[patch18.md5sum] = "cb29e7a33dd85105ba6e6ec4f971e42c"
|
||||
SRC_URI[patch18.sha256sum] = "092437d27b4fa88c044ef6290372fee5ce06d223607f0e22a6e527065c8930e7"
|
||||
|
||||
inherit autotools-brokensep update-alternatives
|
||||
|
||||
do_configure () {
|
||||
./configure --prefix=${prefix}
|
||||
echo "CFLAGS=${CFLAGS}" > MCONFIG
|
||||
}
|
||||
|
||||
do_compile () {
|
||||
oe_runmake 'CC=${CC}' 'LD=${LD}' 'LDFLAGS=${LDFLAGS}' 'CFLAGS=${CFLAGS}'
|
||||
}
|
||||
|
||||
do_install () {
|
||||
install -d ${D}${bindir}
|
||||
install -d ${D}${sbindir}
|
||||
install -d ${D}${mandir}/man1
|
||||
install -d ${D}${mandir}/man8
|
||||
install -d ${D}${sysconfdir}/xinetd.d
|
||||
|
||||
sed -i 's/install -s/install/' tftp/Makefile
|
||||
sed -i 's/install -s/install/' tftpd/Makefile
|
||||
|
||||
oe_runmake 'INSTALLROOT=${D}' 'BINMODE=0755' \
|
||||
'DAEMONMODE=0755' 'MANMODE=0644' \
|
||||
'BINDIR=${bindir}' 'SBINDIR=${sbindir}' \
|
||||
'MANDIR=${mandir}' install
|
||||
|
||||
install ${WORKDIR}/tftp.conf ${D}/${sysconfdir}/xinetd.d/tftp
|
||||
}
|
||||
|
||||
PACKAGES = "${PN}-client ${PN}-server ${PN}-doc ${BPN}-dbg"
|
||||
FILES:${PN}-client = "${bindir}/*"
|
||||
FILES:${PN}-server = "${sbindir}/* ${sysconfdir}/xinetd.d/*"
|
||||
FILES:${PN}-doc = "${mandir}"
|
||||
FILES:${PN}-dbg = "${prefix}/src/debug \
|
||||
${bindir}/.debug ${sbindir}/.debug"
|
||||
|
||||
RDEPENDS:${PN}-server = "tcp-wrappers xinetd"
|
||||
|
||||
ALTERNATIVE_PRIORITY = "100"
|
||||
ALTERNATIVE:${PN}-client = "tftp"
|
||||
ALTERNATIVE_LINK_NAME[tftp] = "${bindir}/tftp"
|
||||
Reference in New Issue
Block a user