Bug#606338: ax25ipd: fails to transmit packets with "assemble_kiss: dumped - control byte non-zero"
Package: ax25-apps
Version: 0.0.6-16.2
Severity: important
Tags: patch
Hi,
I was setting up ax25ipd last night, and it would receive data fine,
but wouldn't transmit anything out the IP side. After looking in my
log files, I observed this message every time I tried to send a packet
out via ax25ipd:
Dec 7 17:49:56 hephaestus ax25ipd: assemble_kiss: dumped - control byte non-zero
I investigated, and found a check on the control byte in kiss.c. I
studied the control bytes, and believe that they are used primarily to
select a port on multi-port TNCs. I don't know why kissnetd or
kissattach cares about them, but there it is.
Now then, this is trivial to fix with the attached patch. This is a
minimally-invasive one; a more proper upstream patch would remove the
whole test. I have tested and it works beautifully.
-- System Information:
Debian Release: squeeze/sid
APT prefers testing
APT policy: (990, 'testing'), (500, 'unstable')
Architecture: amd64 (x86_64)
Kernel: Linux 2.6.32-5-amd64 (SMP w/4 CPU cores)
Locale: LANG=en_US.UTF-8, LC_CTYPE=en_US.UTF-8 (charmap=UTF-8)
Shell: /bin/sh linked to /bin/dash
Versions of packages ax25-apps depends on:
ii debconf [debconf-2.0] 1.5.36 Debian configuration management sy
ii libax25 0.0.11-6.1 ax25 library for hamradio applicat
ii libc6 2.11.2-6+squeeze1 Embedded GNU C Library: Shared lib
ii libncurses5 5.7+20100313-4 shared libraries for terminal hand
ax25-apps recommends no packages.
Versions of packages ax25-apps suggests:
ii ax25-tools 0.0.8-13.1 tools for AX.25 interface configur
-- Configuration Files:
/etc/ax25/ax25ipd.conf changed [not included]
-- debconf information:
ax25-apps/suid_listen: false
diff -durN ax25-apps-0.0.6/ax25ipd/kiss.c fixed/ax25-apps-0.0.6/ax25ipd/kiss.c
--- ax25-apps-0.0.6/ax25ipd/kiss.c 2001-10-08 20:03:12.000000000 -0500
+++ fixed/ax25-apps-0.0.6/ax25ipd/kiss.c 2010-12-07 18:35:19.444623640 -0600
@@ -72,7 +72,7 @@
if (c == FEND) {
if (ifcount > 0) {
/* Make sure that the control byte is zero */
- if (*iframe == '\0' || *iframe == 0x10) {
+ if (1) {
/* Room for CRC in buffer? */
if (ifcount < (MAX_FRAME - 2)) {
stats.kiss_in++;
Reply to: