]> git.proxmox.com Git - mirror_frr.git/blobdiff - lib/vty.c
Merge pull request #538 from qlyoung/fix-stack-access-2
[mirror_frr.git] / lib / vty.c
index 45d475d7ebb19c4e5008e2f37104c0ac6920e008..51e56fc1ae66c3ac2e441a6d257136509d222b70 100644 (file)
--- a/lib/vty.c
+++ b/lib/vty.c
@@ -2632,18 +2632,18 @@ static struct thread_master *vty_master;
 static void
 vty_event (enum event event, int sock, struct vty *vty)
 {
+  struct thread *vty_serv_thread = NULL;
+
   switch (event)
     {
     case VTY_SERV:
-      vector_set_index (Vvty_serv_thread, sock, NULL);
-      thread_add_read(vty_master, vty_accept, vty, sock,
-                      (struct thread **) &Vvty_serv_thread->index[sock]);
+      vty_serv_thread = thread_add_read(vty_master, vty_accept, vty, sock, NULL);
+      vector_set_index (Vvty_serv_thread, sock, vty_serv_thread);
       break;
 #ifdef VTYSH
     case VTYSH_SERV:
-      vector_set_index (Vvty_serv_thread, sock, NULL);
-      thread_add_read(vty_master, vtysh_accept, vty, sock,
-                      (struct thread **) &Vvty_serv_thread->index[sock]);
+      vty_serv_thread = thread_add_read(vty_master, vtysh_accept, vty, sock, NULL);
+      vector_set_index (Vvty_serv_thread, sock, vty_serv_thread);
       break;
     case VTYSH_READ:
       vty->t_read = NULL;