Codesonar fixes for gdbmi library
authorSafey A.Halim <safey.allah@gmail.com>
Sun, 6 Mar 2011 13:18:16 +0000 (13:18 +0000)
committerSafey A.Halim <safey.allah@gmail.com>
Sun, 6 Mar 2011 13:18:16 +0000 (13:18 +0000)
src/monkey/gdbmi_connect.c
src/monkey/gdbmi_get_free_vt.c

index c6e73879f8f089940cb0c0a0e5c41e60945993a6..c698a0eca087f5c38146b99c4034af9fe1f860e9 100644 (file)
@@ -273,53 +273,42 @@ mi_output *mi_get_response_blk(mi_h *h)
    }
  do
    {
-    if (1)
-      {
-       /*
-        That's a must. If we just keep trying to read and failing things
-        become really sloooowwww. Instead we try and if it fails we wait
-        until something is available.
-        TODO: Implement something with the time out, a callback to ask the
-        application is we have to wait or not could be a good thing.
-       */
-       fd_set set;
-       struct timeval timeout;
-       int ret;
-
-       r=mi_get_response(h);
-       if (r)
-          return mi_retire_response(h);
-
-       FD_ZERO(&set);
-       FD_SET(h->from_gdb[0],&set);
-       timeout.tv_sec=h->time_out;
-       timeout.tv_usec=0;
-       ret=TEMP_FAILURE_RETRY(select(FD_SETSIZE,&set,NULL,NULL,&timeout));
-       if (!ret)
-         {
-          if (!mi_check_running(h))
-            {
-             h->died=1;
-             mi_error=MI_GDB_DIED;
-             return NULL;
-            }
-          if (h->time_out_cb)
-             ret=h->time_out_cb(h->time_out_cb_data);
-          if (!ret)
-            {
-             mi_error=MI_GDB_TIME_OUT;
-             return NULL;
-            }
-         }
-      }
-    else
-      {
-       r=mi_get_response(h);
-       if (r)
-          return mi_retire_response(h);
-       else
-          usleep(100);
-      }
+   /*
+    That's a must. If we just keep trying to read and failing things
+    become really sloooowwww. Instead we try and if it fails we wait
+    until something is available.
+    TODO: Implement something with the time out, a callback to ask the
+    application is we have to wait or not could be a good thing.
+   */
+   fd_set set;
+   struct timeval timeout;
+   int ret;
+
+   r=mi_get_response(h);
+   if (r)
+      return mi_retire_response(h);
+
+   FD_ZERO(&set);
+   FD_SET(h->from_gdb[0],&set);
+   timeout.tv_sec=h->time_out;
+   timeout.tv_usec=0;
+   ret=TEMP_FAILURE_RETRY(select(FD_SETSIZE,&set,NULL,NULL,&timeout));
+   if (!ret)
+     {
+      if (!mi_check_running(h))
+        {
+         h->died=1;
+         mi_error=MI_GDB_DIED;
+         return NULL;
+        }
+      if (h->time_out_cb)
+         ret=h->time_out_cb(h->time_out_cb_data);
+      if (!ret)
+        {
+         mi_error=MI_GDB_TIME_OUT;
+         return NULL;
+        }
+     }
    }
  while (!r);
 
index 30e8b355b19531f37f75beac8d198f923fc9fed7..25e5e75a7f7299727704259031cab9d5a9772564 100644 (file)
@@ -92,8 +92,10 @@ int mi_look_for_free_vt()
    }
 
  /* Get the state of the console -- in particular, the free VT field */
- if (ioctl(console_fd,VT_GETSTATE,&vts))
+ if (ioctl(console_fd,VT_GETSTATE,&vts)) {
+        close(console_fd);
     return -2;
+ }
  close(console_fd);
 
  /* We attempt to set our euid to 0; if we were run with euid 0 to