Hi,

here is the code (omitting error checks):

- (int)udpRecvfrom:(int)s datagram:(NSString **)datagram addr:(NSData **)addr
{
    ...
bytes = recvfrom(s, buf, UDP_PACKET_MAX_SIZE, 0, (struct sockaddr *) &sa, &salen);
    ...
    addr_s = malloc(salen + 1);
    memcpy(addr_s, (char *) &sa, salen);
    //addr_s[salen] = '\0';
    *addr = [NSData dataWithBytes:addr_s length:bytes];
    ...
    return bytes;
}

- (int)readBuffer
{
    ...
    ret = [s udpRecvfrom:[c getFd] datagram:&dgram addr:&cliaddr];
//blist_debug_misc(@"GNISIPConn: readBuffer", @"we have a dgram %@", dgram ? dgram : @"nil");
    if (dgram && ret > 0) {
        [inbuffer appendString:dgram];
// blist_debug_misc(@"SIPCONN: readBuffer", @"[%@:%ld %d:%d:%d] (from the pool): read %d bytes from" // @" <%@:%d> (%ld channels)", host, port, [c getPort], i, [c getFd], ret,
    //                           [s udpGetIp:cliaddr], [s udpGetPort:cliaddr], 
len);
    //  [dgram release]; dgram = nil;
    //  [cliaddr release]; cliaddr = nil;
        return 0;
    }
    ...
}

Leaks reports following call stack:
Call stack: [thread 0xb037b000]: | thread_start | _pthread_start | __NSThread__main__ | -[NSThread main] | -[sipbridge response_thread:] |
-[GNISIPState handleResponse:start_closing:status:conn:] |
-[GNISIPEvent waitSip:conn:] | -[GNISIPConn readSip:status:headers:body:] |
 -[GNISIPConn readStartLine:status:] | -[GNISIPConn readLine:] |
-[GNISIPConn readBuffer] | -[GNISocket udpRecvfrom:datagram:addr:] |
+[NSData(NSData) dataWithBytes:length:] | -[NSData(NSData) initWithBytes:
length:] | -[NSConcreteData initWithBytes:length:copy:freeWhenDone:
bytesAreVM:] | NSAllocateObject | _internal_class_createInstanceFromZone |
malloc_zone_calloc

and 512 bytes of binary data

Aarno


_______________________________________________

Cocoa-dev mailing list (Cocoa-dev@lists.apple.com)

Please do not post admin requests or moderator comments to the list.
Contact the moderators at cocoa-dev-admins(at)lists.apple.com

Help/Unsubscribe/Update your Subscription:
http://lists.apple.com/mailman/options/cocoa-dev/archive%40mail-archive.com

This email sent to [EMAIL PROTECTED]

Reply via email to