static int __call_init() { int k; for (k=0; k<MAX_NUMBER_OF_CALLS; k++) { memset(&(jcalls[k]), 0, sizeof(jcall_t)); jcalls[k].state = NOT_USED; } eXosip_get_localip(_localip); return os_sound_init(); }
MY_DLLEXPORT OWPL_RESULT owplConfigGetBoundLocalAddr(char * szLocalAddr, size_t size) { char ip[256]; // put a big buffer to prevent buffer overflow... if(szLocalAddr == NULL) { return OWPL_RESULT_INVALID_ARGS; } memset(szLocalAddr, 0, size); if(size <= 0) { return OWPL_RESULT_INSUFFICIENT_BUFFER; } memset(ip, 0, sizeof(ip)); // HACK : eXosip_get_localip should get the size of the buffer to prevent buffer overflow eXosip_get_localip(ip); ip[sizeof(ip)-1] = '\0'; // be sure to have a zero terminated string if(strlen(ip) > size-1) { return OWPL_RESULT_INSUFFICIENT_BUFFER; } strncpy(szLocalAddr, ip, size-1); return OWPL_RESULT_SUCCESS; }