ifconfig.cpp中关于windows平台的获取未进行buffer长度检验,当系统中的网卡被禁用或驱动掉了时,该函数会导致崩溃。两处获取了buflen后,需要判断是否>0。 ULONG buflen = 0; GetAdaptersAddresses(AF_INET, 0, NULL, pAddrs, &buflen); 这里需要判断if(buflen<1) return;另外还有一处 pAddrs = (PIP_ADAPTER_ADDRESSES)malloc(buflen);