/* message */
int muse_core_msg_send(int sock_fd, const char *msg);
-int muse_core_msg_recv(int sock_fd, char *msg);
+int muse_core_msg_recv(int sock_fd, char *msg, int msg_len);
int muse_core_msg_send_fd(int sock_fd, int *fds, const char *buf);
-int muse_core_msg_recv_fd(int sock_fd, char *buf, int *out_fd);
+int muse_core_msg_recv_fd(int sock_fd, char *buf, int buf_len, int *out_fd);
char *muse_core_msg_new(int api, ...);
bool muse_core_msg_deserialize(const char *key, char *buf, int *parse_len, muse_core_msg_parse_err_e *err, muse_core_msg_type_e m_type, void *data);
void muse_core_msg_free(char *msg);
return ret;
}
-int muse_core_msg_recv(int sock_fd, char *msg)
+int muse_core_msg_recv(int sock_fd, char *msg, int msg_len)
{
g_return_val_if_fail(msg, MM_ERROR_INVALID_ARGUMENT);
- return muse_core_msg_recv_fd(sock_fd, msg, NULL);
+ return muse_core_msg_recv_fd(sock_fd, msg, msg_len, NULL);
}
-int muse_core_msg_recv_fd(int sock_fd, char *buf, int *out_fd)
+int muse_core_msg_recv_fd(int sock_fd, char *buf, int buf_len, int *out_fd)
{
int ret = 0;
- int buf_len = 0;
int pid;
struct cmsghdr *cptr;
struct msghdr msg;
return RECV_FAIL;
}
- while (!buf[buf_len] && buf_len < MUSE_MSG_MAX_LENGTH)
- buf_len++;
-
if (buf_len < msg_info.size && buf_len != 0) {
LOGE("stack overflow caution !! [recv buf's length (%d) must be larger than msg' length (%d)", buf_len, msg_info.size);
return RECV_FAIL;
Name: mused
Summary: A multimedia daemon
-Version: 0.3.46
+Version: 0.3.47
Release: 0
Group: System/Libraries
License: Apache-2.0
while (1) {
memset(m->recv_msg, 0x00, sizeof(m->recv_msg));
- len = muse_core_msg_recv_fd(fd, m->recv_msg, tbm_fd);
+ len = muse_core_msg_recv_fd(fd, m->recv_msg, MUSE_MSG_MAX_LENGTH, tbm_fd);
if (len <= 0) {
strerror_r(errno, err_msg, MUSE_MSG_LEN_MAX);
LOGE("[%s] [%d] recv : %s (%d)", ms_config_get_host(m->idx), fd, err_msg, errno);
char recv_buf[MUSE_MSG_LEN_MAX] = {'\0',};
do {
- if (muse_core_msg_recv_fd(fd, recv_buf, NULL) <= 0) {
+ if (muse_core_msg_recv_fd(fd, recv_buf, MUSE_MSG_LEN_MAX, NULL) <= 0) {
strerror_r(errno, err_msg, MUSE_MSG_LEN_MAX);
LOGE("failed to receive message for module %s", err_msg);
return;