summaryrefslogtreecommitdiff
path: root/buflist.c
diff options
context:
space:
mode:
authorJakub Sławiński2004-10-12 00:07:33 +0200
committerJoshua Judson Rosen2014-07-17 21:14:58 +0200
commit8a5f0141a346ad4b94d09313a2ec9a52efa7cf59 (patch)
tree70af82a7af209cca2ecd6fb44388cf25dd9c785d /buflist.c
parentv0.5.4 (diff)
downloadapf-8a5f0141a346ad4b94d09313a2ec9a52efa7cf59.tar.gz
v0.5.5
- Added: rsa key generation by afclient - Modified: afclient is now generating keys by default - Fixed: major bug in packet buffering - Added: 'timeout', 'clients' and 'usrpcli' options - Fixed: parsing 'users' option - Modified: module management routines - Added: module support for service's packet filtering - Fixed: few minor bugs in closing connection routines - Added: possibility to use several clients per realm - Modified: there is no need for 'users', 'timeout', 'clients', 'proto', 'usrpcli' and 'climode' options in config file when default values are acceptable
Diffstat (limited to 'buflist.c')
-rw-r--r--buflist.c15
1 files changed, 8 insertions, 7 deletions
diff --git a/buflist.c b/buflist.c
index b128249..d25a0ea 100644
--- a/buflist.c
+++ b/buflist.c
@@ -26,20 +26,20 @@
int
insertblnode(blnodeT** headRef, int actptr, int msglen, unsigned char* buff)
{
- blnodeT* newnode, *lastnode;
+ blnodeT* newnode, *lastnode;
lastnode = newnode = *headRef;
while (newnode) {
lastnode = newnode;
newnode = newnode->next;
}
- newnode = calloc(1, sizeof(blnodeT));
- newnode->next = NULL;
+ newnode = calloc(1, sizeof(blnodeT));
+ newnode->next = NULL;
newnode->actptr = 0;
newnode->msglen = msglen - actptr;
newnode->buff = calloc(1, newnode->msglen);
if (newnode->buff == NULL)
return 1;
- strncpy(newnode->buff, buff, newnode->msglen);
+ strncpy(newnode->buff, buff+actptr, newnode->msglen);
if (lastnode)
lastnode->next = newnode;
else
@@ -53,9 +53,10 @@ deleteblnode(blnodeT** headRef)
blnodeT* node = *headRef;
if (*headRef == NULL)
return 1;
- *headRef = node->next;
- free(node->buff);
- free(node);
+ *headRef = node->next;
+ if (node->buff != NULL)
+ free(node->buff);
+ free(node);
return 0;
}