diff --git a/src/cpp/_nix_based/jssc.cpp b/src/cpp/_nix_based/jssc.cpp index 230e248..e9de916 100644 --- a/src/cpp/_nix_based/jssc.cpp +++ b/src/cpp/_nix_based/jssc.cpp @@ -72,6 +72,7 @@ JNIEXPORT jlong JNICALL Java_jssc_SerialNativeInterface_openPort(JNIEnv *env, jo fcntl(hComm, F_SETFL, flags); } else { + close(hComm); hComm = jssc_SerialNativeInterface_ERR_INCORRECT_SERIAL_PORT;//-4; } delete settings; diff --git a/src/cpp/windows/jssc.c++ b/src/cpp/windows/jssc.c++ index dae4980..7d9b095 100644 --- a/src/cpp/windows/jssc.c++ +++ b/src/cpp/windows/jssc.c++ @@ -57,6 +57,7 @@ JNIEXPORT jlong JNICALL Java_jssc_SerialNativeInterface_openPort(JNIEnv *env, jo if(hComm != INVALID_HANDLE_VALUE){ DCB *dcb = new DCB(); if(!GetCommState(hComm, dcb)){ + CloseHandle(hComm); hComm = (HANDLE)jssc_SerialNativeInterface_ERR_INCORRECT_SERIAL_PORT;//(-4)Incorrect serial port } delete dcb;