Fix potential segfault, add support for MacOS X locks
authorMark Spencer <markster@digium.com>
Mon, 24 May 2004 15:28:36 +0000 (15:28 +0000)
committerMark Spencer <markster@digium.com>
Mon, 24 May 2004 15:28:36 +0000 (15:28 +0000)
git-svn-id: https://origsvn.digium.com/svn/asterisk/trunk@3058 65c4cc65-6c06-0410-ace0-fbb531ad65f3

include/asterisk/lock.h
manager.c

index 72743c0..c40a1dd 100755 (executable)
 #define AST_PTHREADT_NULL (pthread_t) -1
 #define AST_PTHREADT_STOP (pthread_t) -2
 
+#ifdef __APPLE__
+/* Provide the Linux initializers for MacOS X */
+#define PTHREAD_MUTEX_RECURSIVE_NP                                     PTHREAD_MUTEX_RECURSIVE
+#define PTHREAD_RECURSIVE_MUTEX_INITIALIZER_NP          { 0x4d555458, \
+                                                                                                          { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, \
+                                                                                                                0x20 } }
+#endif
+
 #ifdef DEBUG_THREADS
 
 #ifdef THREAD_CRASH
index b619baf..c77fec1 100755 (executable)
--- a/manager.c
+++ b/manager.c
@@ -467,6 +467,10 @@ static int action_redirect(struct mansession *s, struct message *m)
                return 0;
        }
        chan = ast_get_channel_by_name_locked(name);
+       if (!chan) {
+               astman_send_error(s, m, "Channel not existant");
+               return 0;
+       }
        if (strlen(name2))
                chan2 = ast_get_channel_by_name_locked(name2);
        res = ast_async_goto(chan, context, exten, pi);