STPingTest icon indicating copy to clipboard operation
STPingTest copied to clipboard

存在内存泄漏

Open guochaoshun opened this issue 3 years ago • 0 comments

在hostResolutionDone方法中给一个char分配地址后, 没有释放此段内存空间, 需要在合适的时机调用free. 目前我是这样修改的.

          {
                case AF_INET: {
                    struct sockaddr_in *addr_in = (struct sockaddr_in *)addrPtr;
                    s = malloc(INET_ADDRSTRLEN);
                    inet_ntop(AF_INET, &(addr_in->sin_addr), s, INET_ADDRSTRLEN);
                    self.IPAddress = [NSString stringWithFormat:@"%s", s];
                    free(s); // 释放malloc空间
                    s = NULL;
                    if (self.addressStyle != STSimplePingAddressStyleICMPv6) {
                        self.hostAddress = address;
                        resolved = true;
                    }
                } break;
                case AF_INET6: {
                    struct sockaddr_in6 *addr_in6 = (struct sockaddr_in6 *)addrPtr;
                    s = malloc(INET6_ADDRSTRLEN);
                    inet_ntop(AF_INET6, &(addr_in6->sin6_addr), s, INET6_ADDRSTRLEN);
                    self.IPAddress = [NSString stringWithFormat:@"%s", s];
                    free(s);  // 释放malloc空间
                    s = NULL;
                    if (self.addressStyle != STSimplePingAddressStyleICMPv4) {
                        self.hostAddress = address;
                        resolved = true;
                    }
                } break;
            }

guochaoshun avatar Aug 03 '22 05:08 guochaoshun