Merge pull request #20330 from dhewg/lrzsz
lrzsz: update to v0.12.21rc and fix a CVE
This commit is contained in:
commit
b0fceb6963
5 changed files with 78 additions and 35 deletions
|
@ -8,16 +8,18 @@
|
||||||
include $(TOPDIR)/rules.mk
|
include $(TOPDIR)/rules.mk
|
||||||
|
|
||||||
PKG_NAME:=lrzsz
|
PKG_NAME:=lrzsz
|
||||||
PKG_VERSION:=0.12.20
|
PKG_VERSION:=0.12.21
|
||||||
PKG_RELEASE:=3
|
PKG_RELEASE:=1
|
||||||
|
|
||||||
PKG_SOURCE:=$(PKG_NAME)-$(PKG_VERSION).tar.gz
|
PKG_SOURCE:=$(PKG_NAME)_$(PKG_VERSION).orig.tar.gz
|
||||||
PKG_SOURCE_URL:=https://ohse.de/uwe/releases/
|
PKG_SOURCE_URL:=@DEBIAN/pool/main/l/lrzsz/
|
||||||
PKG_HASH:=c28b36b14bddb014d9e9c97c52459852f97bd405f89113f30bee45ed92728ff1
|
PKG_HASH:=3262e5df47b108d33e184ff3bf5af14ddca1ac15118ac4ed9171a57c1593ae00
|
||||||
|
PKG_BUILD_DIR=$(BUILD_DIR)/lrzsz-990823
|
||||||
|
|
||||||
PKG_MAINTAINER:=Hsing-Wang Liao <kuoruan@gmail.com>
|
PKG_MAINTAINER:=Hsing-Wang Liao <kuoruan@gmail.com>
|
||||||
PKG_LICENSE:=GPL-2.0-or-later
|
PKG_LICENSE:=GPL-2.0-or-later
|
||||||
PKG_LICENSE_FILES:=COPYING
|
PKG_LICENSE_FILES:=COPYING
|
||||||
|
PKG_CPE_ID:=cpe:/a:lrzsz_project
|
||||||
|
|
||||||
PKG_INSTALL:=1
|
PKG_INSTALL:=1
|
||||||
|
|
||||||
|
@ -26,15 +28,24 @@ include $(INCLUDE_DIR)/package.mk
|
||||||
define Package/lrzsz
|
define Package/lrzsz
|
||||||
SECTION:=utils
|
SECTION:=utils
|
||||||
CATEGORY:=Utilities
|
CATEGORY:=Utilities
|
||||||
TITLE:=X, Y and Z-modem protocols
|
TITLE:=Tools for zmodem/xmodem/ymodem file transfer
|
||||||
URL:=https://ohse.de/uwe/software/lrzsz.html
|
URL:=https://ohse.de/uwe/software/lrzsz.html
|
||||||
endef
|
endef
|
||||||
|
|
||||||
define Package/lrzsz/description
|
define Package/lrzsz/description
|
||||||
Transfer files in your login sessions.
|
lrzsz is a cosmetically modified zmodem/ymodem/xmodem package built
|
||||||
Very leightweight and straight forward.
|
from the public-domain version of Chuck Forsberg's rzsz package.
|
||||||
You just need a terminal client that can do
|
|
||||||
either X, Y or Z-modem file transfers.
|
These programs use error correcting protocols ({z,x,y}modem) to send
|
||||||
|
(sz, sx, sb) and receive (rz, rx, rb) files over a dial-in serial port
|
||||||
|
from a variety of programs running under various operating systems.
|
||||||
|
endef
|
||||||
|
|
||||||
|
# to stop automake from running, the bundled autohell crap is too old
|
||||||
|
define Build/Configure
|
||||||
|
touch $(PKG_BUILD_DIR)/*
|
||||||
|
touch $(PKG_BUILD_DIR)/*/*
|
||||||
|
$(call Build/Configure/Default)
|
||||||
endef
|
endef
|
||||||
|
|
||||||
define Package/lrzsz/install
|
define Package/lrzsz/install
|
||||||
|
|
|
@ -0,0 +1,22 @@
|
||||||
|
From 89fef6d8dc539ed6225b46b8e755e08bbf48d27b Mon Sep 17 00:00:00 2001
|
||||||
|
From: Uwe Ohse <uwe@ohse.de>
|
||||||
|
Date: Sun, 1 Mar 2020 22:34:24 +0000
|
||||||
|
Subject: [PATCH] siginterrupt after the call to signal, otherwise ymodem
|
||||||
|
transfer hangs. WTF?
|
||||||
|
|
||||||
|
---
|
||||||
|
src/zreadline.c | 3 +++
|
||||||
|
1 file changed, 3 insertions(+)
|
||||||
|
|
||||||
|
--- a/src/zreadline.c
|
||||||
|
+++ b/src/zreadline.c
|
||||||
|
@@ -71,6 +71,9 @@ readline_internal(unsigned int timeout)
|
||||||
|
vstringf("Calling read: alarm=%d Readnum=%d ",
|
||||||
|
n, readline_readnum);
|
||||||
|
signal(SIGALRM, zreadline_alarm_handler);
|
||||||
|
+#ifdef HAVE_SIGINTERRUPT
|
||||||
|
+ siginterrupt(SIGALRM,1);
|
||||||
|
+#endif
|
||||||
|
alarm(n);
|
||||||
|
}
|
||||||
|
else if (Verbose > 5)
|
|
@ -0,0 +1,28 @@
|
||||||
|
From a7c525191aa725f4ebb7b489cdd7dd854a4e42fb Mon Sep 17 00:00:00 2001
|
||||||
|
From: Uwe Ohse <uwe@ohse.de>
|
||||||
|
Date: Sun, 1 Mar 2020 22:35:28 +0000
|
||||||
|
Subject: [PATCH] may-be-security-fix: avoid possible underflow
|
||||||
|
|
||||||
|
Fixes: CVE-2018-10195
|
||||||
|
|
||||||
|
[a.heider: mention CVE in commit message]
|
||||||
|
---
|
||||||
|
src/zm.c | 5 +++--
|
||||||
|
1 file changed, 3 insertions(+), 2 deletions(-)
|
||||||
|
|
||||||
|
--- a/src/zm.c
|
||||||
|
+++ b/src/zm.c
|
||||||
|
@@ -432,10 +432,11 @@ zsdata(const char *buf, size_t length, i
|
||||||
|
VPRINTF(3,("zsdata: %lu %s", (unsigned long) length,
|
||||||
|
Zendnames[(frameend-ZCRCE)&3]));
|
||||||
|
crc = 0;
|
||||||
|
- do {
|
||||||
|
+ while (length>0) {
|
||||||
|
zsendline(*buf); crc = updcrc((0377 & *buf), crc);
|
||||||
|
buf++;
|
||||||
|
- } while (--length>0);
|
||||||
|
+ length--;
|
||||||
|
+ }
|
||||||
|
xsendline(ZDLE); xsendline(frameend);
|
||||||
|
crc = updcrc(frameend, crc);
|
||||||
|
|
|
@ -1,6 +1,6 @@
|
||||||
--- a/src/Makefile.in
|
--- a/src/Makefile.in
|
||||||
+++ b/src/Makefile.in
|
+++ b/src/Makefile.in
|
||||||
@@ -372,13 +372,13 @@ install-exec-local:
|
@@ -414,13 +414,13 @@ install-exec-local:
|
||||||
rm -f $(DESTDIR)/$(bindir)/`echo lsb | sed -e '$(transform)'`
|
rm -f $(DESTDIR)/$(bindir)/`echo lsb | sed -e '$(transform)'`
|
||||||
ln $(DESTDIR)/$(bindir)/`echo lsz |sed -e '$(transform)'` \
|
ln $(DESTDIR)/$(bindir)/`echo lsz |sed -e '$(transform)'` \
|
||||||
$(DESTDIR)/$(bindir)/`echo lsb |sed -e '$(transform)'`
|
$(DESTDIR)/$(bindir)/`echo lsb |sed -e '$(transform)'`
|
||||||
|
|
|
@ -10,7 +10,7 @@
|
||||||
|
|
||||||
--- a/src/lrz.c
|
--- a/src/lrz.c
|
||||||
+++ b/src/lrz.c
|
+++ b/src/lrz.c
|
||||||
@@ -2319,7 +2319,7 @@ exec2(const char *s)
|
@@ -2296,7 +2296,7 @@ exec2(const char *s)
|
||||||
if (*s == '!')
|
if (*s == '!')
|
||||||
++s;
|
++s;
|
||||||
io_mode(0,0);
|
io_mode(0,0);
|
||||||
|
@ -31,7 +31,7 @@
|
||||||
#endif
|
#endif
|
||||||
--- a/src/lsz.c
|
--- a/src/lsz.c
|
||||||
+++ b/src/lsz.c
|
+++ b/src/lsz.c
|
||||||
@@ -1997,7 +1997,7 @@ zsendfdata (struct zm_fileinfo *zi)
|
@@ -1988,7 +1988,7 @@ zsendfdata (struct zm_fileinfo *zi)
|
||||||
blklen = calc_blklen (total_sent);
|
blklen = calc_blklen (total_sent);
|
||||||
total_sent += blklen + OVERHEAD;
|
total_sent += blklen + OVERHEAD;
|
||||||
if (Verbose > 2 && blklen != old)
|
if (Verbose > 2 && blklen != old)
|
||||||
|
@ -40,29 +40,9 @@
|
||||||
#ifdef HAVE_MMAP
|
#ifdef HAVE_MMAP
|
||||||
if (mm_addr) {
|
if (mm_addr) {
|
||||||
if (zi->bytes_sent + blklen < mm_size)
|
if (zi->bytes_sent + blklen < mm_size)
|
||||||
--- a/src/tcp.c
|
|
||||||
+++ b/src/tcp.c
|
|
||||||
@@ -56,7 +56,7 @@ tcp_server (char *buf)
|
|
||||||
struct sockaddr_in s;
|
|
||||||
struct sockaddr_in t;
|
|
||||||
int on=1;
|
|
||||||
- size_t len;
|
|
||||||
+ socklen_t len;
|
|
||||||
|
|
||||||
if ((sock = socket (AF_INET, SOCK_STREAM, IPPROTO_TCP)) < 0) {
|
|
||||||
error(1,errno,"socket");
|
|
||||||
@@ -91,7 +91,7 @@ tcp_accept (int d)
|
|
||||||
{
|
|
||||||
int so;
|
|
||||||
struct sockaddr_in s;
|
|
||||||
- size_t namelen;
|
|
||||||
+ socklen_t namelen;
|
|
||||||
int num=0;
|
|
||||||
|
|
||||||
namelen = sizeof(s);
|
|
||||||
--- a/src/zm.c
|
--- a/src/zm.c
|
||||||
+++ b/src/zm.c
|
+++ b/src/zm.c
|
||||||
@@ -451,7 +451,7 @@ zsda32(const char *buf, size_t length, i
|
@@ -453,7 +453,7 @@ zsda32(const char *buf, size_t length, i
|
||||||
int c;
|
int c;
|
||||||
unsigned long crc;
|
unsigned long crc;
|
||||||
int i;
|
int i;
|
||||||
|
@ -73,7 +53,7 @@
|
||||||
zsendline_s(buf,length);
|
zsendline_s(buf,length);
|
||||||
--- a/src/zreadline.c
|
--- a/src/zreadline.c
|
||||||
+++ b/src/zreadline.c
|
+++ b/src/zreadline.c
|
||||||
@@ -68,13 +68,13 @@ readline_internal(unsigned int timeout)
|
@@ -68,7 +68,7 @@ readline_internal(unsigned int timeout)
|
||||||
else if (n==0)
|
else if (n==0)
|
||||||
n=1;
|
n=1;
|
||||||
if (Verbose > 5)
|
if (Verbose > 5)
|
||||||
|
@ -81,6 +61,8 @@
|
||||||
+ vstringf("Calling read: alarm=%u Readnum=%zu ",
|
+ vstringf("Calling read: alarm=%u Readnum=%zu ",
|
||||||
n, readline_readnum);
|
n, readline_readnum);
|
||||||
signal(SIGALRM, zreadline_alarm_handler);
|
signal(SIGALRM, zreadline_alarm_handler);
|
||||||
|
#ifdef HAVE_SIGINTERRUPT
|
||||||
|
@@ -77,7 +77,7 @@ readline_internal(unsigned int timeout)
|
||||||
alarm(n);
|
alarm(n);
|
||||||
}
|
}
|
||||||
else if (Verbose > 5)
|
else if (Verbose > 5)
|
||||||
|
|
Loading…
Reference in a new issue