pid_t mypid;
int fd = -1;
char filename[MAX_FILE_LENGTH];
+ int result = MM_ERROR_NONE;
debug_fenter();
if (fd < 0)
return MM_ERROR_INVALID_HANDLE;
- read(fd, sessiontype, sizeof(int));
- *sessiontype = *sessiontype >> 16;
- debug_warning("read sessiontype(%d) from /tmp/mm_session_%d", *sessiontype, mypid);
+ if (read(fd, sessiontype, sizeof(int)) == sizeof(int)) {
+ *sessiontype = *sessiontype >> 16;
+ debug_warning("read sessiontype(%d) from /tmp/mm_session_%d", *sessiontype, mypid);
+ } else {
+ debug_error("failed to read from %s, errno %d", filename, errno);
+ result = MM_ERROR_INVALID_HANDLE;
+ }
+
close(fd);
////// READ SESSION TYPE /////////
debug_fleave();
- return MM_ERROR_NONE;
+ return result;
}
EXPORT_API
int fd = -1;
char filename[MAX_FILE_LENGTH];
int result_info = 0;
+ int result = MM_ERROR_NONE;
debug_fenter();
fd = open(filename, O_RDONLY);
if (fd < 0)
return MM_ERROR_INVALID_HANDLE;
- read(fd, &result_info, sizeof(int));
- *session_type = result_info >> 16;
- *flags = result_info & 0x0000ffff;
+ if (read(fd, &result_info, sizeof(int)) == sizeof(int)) {
+ *session_type = result_info >> 16;
+ *flags = result_info & 0x0000ffff;
+ debug_warning("read session_type(%d), session_option(%x) from /tmp/mm_session_%d", *session_type, *flags, mypid);
+ } else {
+ debug_error("failed to read from %s, errno %d", filename, errno);
+ result = MM_ERROR_INVALID_HANDLE;
+ }
- debug_warning("read session_type(%d), session_option(%x) from /tmp/mm_session_%d", *session_type, *flags, mypid);
close(fd);
////// READ SESSION INFO /////////
debug_fleave();
- return MM_ERROR_NONE;
+ return result;
}
void __session_signal_handler(int signo, siginfo_t *siginfo, void *context)