if ((recv_msg_size = recv(sockfd, buf, header_size, 0)) < 0) {
if (errno == EWOULDBLOCK) {
MSAPI_DBG_ERR("Timeout. Can't try any more");
+ MS_SAFE_FREE(buf);
return MS_MEDIA_ERR_SOCKET_RECEIVE_TIMEOUT;
} else {
MSAPI_DBG_ERR("recv failed");
+ MS_SAFE_FREE(buf);
return MS_MEDIA_ERR_SOCKET_RECEIVE;
}
}
serv_addr.sun_family = AF_UNIX;
MSAPI_DBG("%s", sock_info->sock_path);
unlink(sock_info->sock_path);
- strcpy(serv_addr.sun_path, sock_info->sock_path);
+ strncpy(serv_addr.sun_path, sock_info->sock_path, strlen(sock_info->sock_path));
/* Bind to the local address */
if (bind(sock, (struct sockaddr *)&serv_addr, sizeof(serv_addr)) < 0) {
int ret = MS_MEDIA_ERR_NONE;
char *dir_path = NULL;
char *leaf_path = NULL;
+ char *usr_path = NULL;
ret = __msc_check_file_path(full_path, uid);
if (ret != MS_MEDIA_ERR_NONE) {
return MS_MEDIA_ERR_INVALID_PATH;
}
+ usr_path = __msc_get_path(uid);
+ if (usr_path == NULL) {
+ MS_DBG_ERR("__msc_get_path() fail");
+ MS_SAFE_FREE(dir_path);
+ return MS_MEDIA_ERR_INTERNAL;
+ }
+
while (1) {
if (__msc_check_scan_ignore(dir_path)) {
ret = MS_MEDIA_ERR_INVALID_PATH;
}
/*If root path, Stop Scanning*/
- if (strcmp(dir_path, __msc_get_path(uid)) == 0)
+ if (strcmp(dir_path, usr_path) == 0)
break;
else if (MS_STRING_VALID(MEDIA_ROOT_PATH_SDCARD) && (strcmp(dir_path, MEDIA_ROOT_PATH_SDCARD) == 0))
break;
}
MS_SAFE_FREE(dir_path);
+ MS_SAFE_FREE(usr_path);
return ret;
}
ms_update_start(handle);
/*insert data into media db */
- start_path = strdup(__msc_get_path(scan_data->uid));
+ char *usr_path = __msc_get_path(scan_data->uid);
+ if (usr_path == NULL) {
+ MS_DBG_ERR("__msc_get_path() fail");
+ if (handle) ms_disconnect_db(&handle);
+ return MS_MEDIA_ERR_INTERNAL;
+ }
+
+ start_path = strdup(usr_path);
ret = __msc_dir_scan_meta_update(handle, start_path, storage_type, scan_data->uid);
+ MS_SAFE_FREE(usr_path);
/* send notification */
- ms_send_dir_update_noti(handle, INTERNAL_STORAGE_ID, __msc_get_path(scan_data->uid), NULL, MS_ITEM_UPDATE, scan_data->pid);
+ ms_send_dir_update_noti(handle, INTERNAL_STORAGE_ID, start_path, NULL, MS_ITEM_UPDATE, scan_data->pid);
if (mmc_state == MS_STG_INSERTED) {
storage_type = MS_STORAGE_EXTERNAL;