diff options
Diffstat (limited to 'src/osd/modules/sync/sync_windows.c')
-rw-r--r-- | src/osd/modules/sync/sync_windows.c | 9 |
1 files changed, 9 insertions, 0 deletions
diff --git a/src/osd/modules/sync/sync_windows.c b/src/osd/modules/sync/sync_windows.c index bf5c5c33504..b7d266a52ad 100644 --- a/src/osd/modules/sync/sync_windows.c +++ b/src/osd/modules/sync/sync_windows.c @@ -271,9 +271,16 @@ osd_thread *osd_thread_create(osd_thread_callback callback, void *cbparam) uintptr_t handle; thread = (osd_thread *)calloc(1, sizeof(osd_thread)); + if (thread == NULL) + return NULL; thread->callback = callback; thread->param = cbparam; handle = _beginthreadex(NULL, 0, worker_thread_entry, thread, 0, NULL); + if (handle == 0) + { + free(thread); + return NULL; + } thread->handle = (HANDLE) handle; return thread; } @@ -320,6 +327,8 @@ osd_scalable_lock *osd_scalable_lock_alloc(void) osd_scalable_lock *lock; lock = (osd_scalable_lock *)calloc(1, sizeof(*lock)); + if (lock == NULL) + return NULL; memset(lock, 0, sizeof(*lock)); #if USE_SCALABLE_LOCKS |