[Bugfix][API-617][System]Fix handle leakage when inserting or removing usb

Change-Id: Ie18c83e4a691632ba70c6a88b46244cf5a8f891b
diff --git a/framework/lynq-ril-service/src/main.cpp b/framework/lynq-ril-service/src/main.cpp
index 02de0b4..123a92f 100755
--- a/framework/lynq-ril-service/src/main.cpp
+++ b/framework/lynq-ril-service/src/main.cpp
@@ -84,6 +84,44 @@
     }
 }
 
+static void signal_handler(int signum)
+{
+    switch(signum)
+    {
+        case SIGABRT:
+            RLOGD("function %s recv SIGABRT\n", __FUNCTION__);
+            break;
+        case SIGBUS:
+            RLOGD("recv %s SIGBUS\n", __FUNCTION__);
+            break;
+        case SIGFPE:
+            RLOGD("recv %sSIGFPE\n", __FUNCTION__);
+            break;
+        case SIGILL:
+            RLOGD("recv %sSIGILL\n", __FUNCTION__);
+            break;
+        case SIGSEGV:
+            RLOGD("recv %sSIGSEGV\n", __FUNCTION__);
+            break;
+        case SIGHUP:
+            RLOGD("recv %s SIGHUP\n", __FUNCTION__);
+            if(ttyGS3_fd > 0)
+            {
+                close(ttyGS3_fd);
+                RLOGE("reopen need close");
+            }
+            ttyGS3_fd = open("/dev/ttyGS3",O_RDWR);
+            if(ttyGS3_fd==-1)
+            {
+                RLOGE("open ttyGS3 failure!!!");
+            }
+            break;
+         default:
+            RLOGD("recv unknown signal\n");
+            break;
+    }
+}
+
 int main(int argc, char **argv) {
     /*lei add for gsw
     reason:Socket sending failed at GSW
diff --git a/framework/lynq-ril-service/src/ril.cpp b/framework/lynq-ril-service/src/ril.cpp
index 9a8ee83..8e0bbb1 100755
--- a/framework/lynq-ril-service/src/ril.cpp
+++ b/framework/lynq-ril-service/src/ril.cpp
@@ -6535,6 +6535,11 @@
     int argc = 0;
     char *argv[MAX_ARGS];//argv[0]:at name,argv[1]:raw data,argv[2]:at type,argv[3]:paramter1,argv[4]:paramter2 ....
     char eBuf[1024];
+    if(ttyGS3_fd > 0)
+    {
+        close(ttyGS3_fd);
+        RLOGE("reopen need close");
+    }
     ttyGS3_fd = open("/dev/ttyGS3",O_RDWR);
     if(ttyGS3_fd==-1)
     {