[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)
{