diff --git a/libs/sqlite/src/sqliteInt.h b/libs/sqlite/src/sqliteInt.h index 8468a156d1..f844ddf24e 100644 --- a/libs/sqlite/src/sqliteInt.h +++ b/libs/sqlite/src/sqliteInt.h @@ -281,20 +281,26 @@ static inline void *zmalloc(size_t x) return z; } +static inline char *strndup_lite(const char *s, size_t n) +{ + char *dup = malloc(n+1); + assert(dup); + memcpy(dup, s, n); + *(dup+n) = '\0'; + return dup; +} #define ENTER_MALLOC 0 #define sqliteMalloc(x) zmalloc(x)//sqlite3Malloc(x,1) #define sqliteMallocRaw(x) malloc(x)//sqlite3MallocRaw(x,1) #define sqliteRealloc(x,y) realloc(x, y)//sqlite3Realloc(x,y) #define sqliteStrDup(x) strdup(x)//sqlite3StrDup(x) -#define sqliteStrNDup(x,y) sqlite3StrNDup(x,y) - +#define sqliteStrNDup(x,y) strndup_lite(x,y) //sqlite3StrNDup(x,y) #define sqliteReallocOrFree(x,y) sqlite3ReallocOrFree(x,y) #endif - -#define sqliteFree(x) if (x) { free((void *)x); x = NULL; } //sqlite3FreeX(x) +#define sqliteFree(x) if (x) { free((void *)x); x = NULL;} //sqlite3FreeX(x) #define sqliteAllocSize(x) sqlite3AllocSize(x) diff --git a/libs/sqlite/src/util.c b/libs/sqlite/src/util.c index cce1fa2388..457227da0e 100644 --- a/libs/sqlite/src/util.c +++ b/libs/sqlite/src/util.c @@ -729,7 +729,7 @@ char *sqlite3StrDup(const char *z){ char *sqlite3StrNDup(const char *z, int n){ char *zNew; if( z==0 ) return 0; - zNew = sqliteMallocRaw(n+1); + zNew = sqlite3MallocRaw(n+1, 1); if( zNew ){ memcpy(zNew, z, n); zNew[n] = 0; diff --git a/libs/sqlite/src/vdbefifo.c b/libs/sqlite/src/vdbefifo.c index 7ea6c050f9..f5555b0d45 100644 --- a/libs/sqlite/src/vdbefifo.c +++ b/libs/sqlite/src/vdbefifo.c @@ -89,7 +89,7 @@ int sqlite3VdbeFifoPop(Fifo *pFifo, i64 *pVal){ pFifo->pFirst = pPage->pNext; sqliteFree(pPage); if( pFifo->nEntry==0 ){ - assert( pFifo->pLast==pPage ); + //assert( pFifo->pLast==pPage ); pFifo->pLast = 0; }else{ assert( pFifo->pFirst!=0 ); diff --git a/src/switch_core.c b/src/switch_core.c index fa10f7b2cb..8733aec4b5 100644 --- a/src/switch_core.c +++ b/src/switch_core.c @@ -705,10 +705,19 @@ SWITCH_DECLARE(switch_status_t) switch_core_init(switch_core_flag_t flags, switc { struct rlimit rlp; + /* + Setting the stack size on FreeBSD results in an instant crash. + + If anyone knows how to fix this, + feel free to submit a patch to http://jira.freeswitch.org + */ + +#ifndef __FreeBSD__ memset(&rlp, 0, sizeof(rlp)); rlp.rlim_cur = SWITCH_THREAD_STACKSIZE; rlp.rlim_max = SWITCH_THREAD_STACKSIZE; setrlimit(RLIMIT_STACK, &rlp); +#endif memset(&rlp, 0, sizeof(rlp)); rlp.rlim_cur = 999999;