aboutsummaryrefslogtreecommitdiffstats
path: root/protocols/jabber/si.c
diff options
context:
space:
mode:
authorWilmer van der Gaast <wilmer@gaast.net>2010-03-18 00:07:16 +0000
committerWilmer van der Gaast <wilmer@gaast.net>2010-03-18 00:07:16 +0000
commit78d254f110d47f9e0c3a8f12259f93a4faa2130d (patch)
treecd48282657f1e7f3d66032d25f5c8e37159dfe2c /protocols/jabber/si.c
parent42fc5b6cfed51ac011df8877cf5e24f00828e8be (diff)
More small fixes. (NULL derefs and s/close/disconnect/)
Diffstat (limited to 'protocols/jabber/si.c')
-rw-r--r--protocols/jabber/si.c8
1 files changed, 5 insertions, 3 deletions
diff --git a/protocols/jabber/si.c b/protocols/jabber/si.c
index e7aeffc9..424db8b3 100644
--- a/protocols/jabber/si.c
+++ b/protocols/jabber/si.c
@@ -40,7 +40,7 @@ void jabber_si_free_transfer( file_transfer_t *ft)
if( tf->fd != -1 )
{
- close( tf->fd );
+ disconnect( tf->fd );
tf->fd = -1;
}
@@ -51,6 +51,7 @@ void jabber_si_free_transfer( file_transfer_t *ft)
g_free( tf->tgt_jid );
g_free( tf->iq_id );
g_free( tf->sid );
+ g_free( tf );
}
/* file_transfer canceled() callback */
@@ -203,7 +204,7 @@ void jabber_si_transfer_request( struct im_connection *ic, file_transfer_t *ft,
int jabber_si_handle_request( struct im_connection *ic, struct xt_node *node, struct xt_node *sinode)
{
struct xt_node *c, *d, *reply;
- char *sid, *ini_jid, *tgt_jid, *iq_id, *s, *ext_jid;
+ char *sid, *ini_jid, *tgt_jid, *iq_id, *s, *ext_jid, *size_s;
struct jabber_buddy *bud;
int requestok = FALSE;
char *name;
@@ -229,7 +230,8 @@ int jabber_si_handle_request( struct im_connection *ic, struct xt_node *node, st
!( d = xt_find_node( sinode->children, "file" ) ) ||
!( strcmp( xt_find_attr( d, "xmlns" ), XMLNS_FILETRANSFER ) == 0 ) ||
!( name = xt_find_attr( d, "name" ) ) ||
- !( size = (size_t) atoll( xt_find_attr( d, "size" ) ) ) ||
+ !( size_s = xt_find_attr( d, "size" ) ) ||
+ !( 1 == sscanf( size_s, "%lld", &size ) ) ||
!( d = xt_find_node( sinode->children, "feature" ) ) ||
!( strcmp( xt_find_attr( d, "xmlns" ), XMLNS_FEATURE ) == 0 ) ||
!( d = xt_find_node( d->children, "x" ) ) ||