Package: cobex
Version: 0.2.13-2
Severity: important
Tags: patch
cobex_ls dies with sigsegv on amd64 because it uses ints as counters
in the iconv calls where size_t is expected, and on amd64 size_t !=
int. The attached patch changes the variables to be of type size_t.
The second patch fixes several "pointer targets in assignment differ
in signedness" compiler warnings (although these probably aren't
harmful in pratice).
-- System Information:
Debian Release: lenny/sid
APT prefers unstable
APT policy: (500, 'unstable')
Architecture: amd64 (x86_64)
Kernel: Linux 2.6.23.8 (PREEMPT)
Locale: LANG=C, [EMAIL PROTECTED] (charmap=ISO-8859-15)
Shell: /bin/sh linked to /bin/bash
Versions of packages cobex depends on:
ii libc6 2.7-4 GNU C Library: Shared libraries
ii libexpat1 1.95.8-4 XML parsing C library - runtime li
ii libezv24-0 0.1.1-1 ez24V Library: Shared library
cobex recommends no packages.
-- no debconf information
diff -u cobex-0.2.13-orig/cobex_core.c cobex-0.2.13/cobex_core.c
--- cobex-0.2.13-orig/cobex_core.c 2006-10-30 18:35:42.000000000 +0200
+++ cobex-0.2.13/cobex_core.c 2007-12-13 20:24:37.000000000 +0200
@@ -148,8 +148,8 @@
int i;
int convLgt;
- u_int inBytes = lgt;
- u_int outBytes = MAXCHARS;
+ size_t inBytes = lgt;
+ size_t outBytes = MAXCHARS;
char outOrigMsg[MAXCHARS];
char *inMsgP = msg;
diff -u cobex-0.2.13-orig/ls.c cobex-0.2.13/ls.c
--- cobex-0.2.13-orig/ls.c 2006-10-30 18:35:42.000000000 +0200
+++ cobex-0.2.13/ls.c 2007-12-13 20:25:31.000000000 +0200
@@ -50,9 +50,9 @@
- int inBytes;
+ size_t inBytes;
char inOrigMsg[MAXCHARS];
- int outBytes = MAXCHARS;
+ size_t outBytes = MAXCHARS;
char outOrigMsg[MAXCHARS];
char *inMsgP = inOrigMsg;
diff -u cobex-0.2.13-orig/cobex_tools.c cobex-0.2.13/cobex_tools.c
--- cobex-0.2.13-orig/cobex_tools.c 2006-10-30 18:35:42.000000000 +0200
+++ cobex-0.2.13/cobex_tools.c 2007-12-13 20:18:36.000000000 +0200
@@ -34,7 +34,7 @@
void ctools_signalHandler ( int reason ) {
- char aBuffer[513];
+ u_char aBuffer[513];
obex_packet aPacket;
aPacket.max=512;
diff -u cobex-0.2.13-orig/get.c cobex-0.2.13/get.c
--- cobex-0.2.13-orig/get.c 2006-10-30 18:35:42.000000000 +0200
+++ cobex-0.2.13/get.c 2007-12-13 20:18:45.000000000 +0200
@@ -33,7 +33,7 @@
int main (int argc, char *argv[]) {
v24_port_t *UsedPort=NULL;
int rc;
- char aBuffer[513];
+ u_char aBuffer[513];
obex_packet aPacket;
char *name;
char *path;
diff -u cobex-0.2.13-orig/ls.c cobex-0.2.13/ls.c
--- cobex-0.2.13-orig/ls.c 2007-12-15 15:16:51.000000000 +0200
+++ cobex-0.2.13/ls.c 2007-12-13 20:25:31.000000000 +0200
@@ -142,10 +142,10 @@
pD = cobex_parseNext( inPacket,p );
switch (pD.HI) {
case OBEX_HI_END_OF_BODY:
- if (XML_Parse (*inParser, pD.HIdata, pD.HIlen, 1) == XML_STATUS_ERROR ) {return COBEX_ERR;}
+ if (XML_Parse (*inParser, (char*)pD.HIdata, pD.HIlen, 1) == XML_STATUS_ERROR ) {return COBEX_ERR;}
break;
case OBEX_HI_BODY:
- if (XML_Parse (*inParser, pD.HIdata, pD.HIlen, 0) == XML_STATUS_ERROR ) {return COBEX_ERR;}
+ if (XML_Parse (*inParser, (char*)pD.HIdata, pD.HIlen, 0) == XML_STATUS_ERROR ) {return COBEX_ERR;}
break;
}
p = pD.nextHIp;
@@ -220,7 +220,7 @@
int rc;
//char fileName[80];
- char aBuffer[513];
+ u_char aBuffer[513];
obex_packet aPacket;
aPacket.max=512;
diff -u cobex-0.2.13-orig/mkdir.c cobex-0.2.13/mkdir.c
--- cobex-0.2.13-orig/mkdir.c 2006-10-30 18:35:42.000000000 +0200
+++ cobex-0.2.13/mkdir.c 2007-12-13 20:19:34.000000000 +0200
@@ -34,7 +34,7 @@
v24_port_t *UsedPort=NULL;
int rc=0;
- char aBuffer[513];
+ u_char aBuffer[513];
obex_packet aPacket;
aPacket.max=512;
diff -u cobex-0.2.13-orig/rm.c cobex-0.2.13/rm.c
--- cobex-0.2.13-orig/rm.c 2006-10-30 18:35:42.000000000 +0200
+++ cobex-0.2.13/rm.c 2007-12-13 20:19:20.000000000 +0200
@@ -35,7 +35,7 @@
int rc;
- char aBuffer[513];
+ u_char aBuffer[513];
obex_packet aPacket;
aPacket.max=512;