diff -r d6dafc5d983f -r 1627c337e51e javaextensions/bluetooth/bluetoothcommons/src.s60/servicerecord.cpp --- a/javaextensions/bluetooth/bluetoothcommons/src.s60/servicerecord.cpp Fri Oct 15 12:29:39 2010 +0300 +++ b/javaextensions/bluetooth/bluetoothcommons/src.s60/servicerecord.cpp Fri Oct 29 11:49:32 2010 +0300 @@ -219,12 +219,16 @@ if (persistentRecFd < 0) return errno; + // Reading and restoring the DeviceServiceClasses bits int devServClass = 0; ret = read(persistentRecFd, &devServClass, sizeof(devServClass)); if (ret <= 0) + { + close(persistentRecFd); return errno; + } if (devServClass != 0) { @@ -429,7 +433,7 @@ // Indicates a successful retrieval // of the service record from the persistent file mRestoredFromPersistentFile = true; - + close(persistentRecFd); return ret; } @@ -1312,6 +1316,7 @@ if (ret <= 0) { delete srvRecPopulator; + close(persistentRecFd); return; } @@ -1525,7 +1530,7 @@ } delete srvRecPopulator; - + close(persistentRecFd); return; }