From: adhavan.m Date: Mon, 7 Sep 2020 07:51:46 +0000 (+0530) Subject: Fix build warnings X-Git-Tag: submit/tizen/20200909.080622~2 X-Git-Url: http://review.tizen.org/git/?a=commitdiff_plain;h=refs%2Fchanges%2F85%2F243385%2F1;p=sdk%2Ftarget%2Fsdbd.git Fix build warnings Change-Id: I8b3e113c21eed349a65d08fed32684cb096c4698 Signed-off-by: adhavan.m --- diff --git a/src/default_plugin.h b/src/default_plugin.h old mode 100644 new mode 100755 index d8ac7f9..031ea86 --- a/src/default_plugin.h +++ b/src/default_plugin.h @@ -23,12 +23,14 @@ int get_plugin_capability ( parameters* in, parameters* out ); int verify_shell_cmd ( parameters* in, parameters* out ); int convert_shell_cmd ( parameters* in, parameters* out ); int verify_peer_ip ( parameters* in, parameters* out ); +int verify_peer_ipv6 ( parameters* in, parameters* out ); int verify_sdbd_launch ( parameters* in, parameters* out ); int verify_root_cmd ( parameters* in, parameters* out ); int get_lock_state ( parameters* in, parameters* out ); int get_shell_env ( parameters* in, parameters* out ); int verify_push ( parameters* in, parameters* out ); int verify_pull ( parameters* in, parameters* out ); +int verify_handle_by_plugin ( parameters* in, parameters* out ); int auth_support ( parameters* in, parameters* out ); int auth_get_key_file_paths ( parameters* in, parameters* out ); diff --git a/src/default_plugin_shellcmd.c b/src/default_plugin_shellcmd.c index 7e5bf2b..7bfeb99 100755 --- a/src/default_plugin_shellcmd.c +++ b/src/default_plugin_shellcmd.c @@ -20,6 +20,7 @@ #include "log.h" #include "parameter.h" #include "sdbd_plugin.h" +#include "transport.h" #define SHELLCMD_RESULT_BUFSIZE (4096) diff --git a/src/plugin.h b/src/plugin.h old mode 100644 new mode 100755 index 1b2ccbe..6db5f65 --- a/src/plugin.h +++ b/src/plugin.h @@ -45,15 +45,32 @@ int request_capability_to_plugin ( int cap, char* out_buf, unsigned int out_len // return 0 if disallowed by plugin (invalid) int request_validity_to_plugin ( int cmd, const char* in_buf ); +// return 1 if allowed by plugin (valid) +// return 0 if disallowed by plugin (invalid) +int request_extcmd_validity_to_plugin ( int cmd, const char* in_buf); + // return 1 if succeed to convert // return 0 otherwise int request_conversion_to_plugin ( int cmd, const char* in_buf, char* out_buf, unsigned int out_len ); +// return 1 if succeed to convert +// return 0 otherwise +int request_extcmd_conversion_to_plugin ( int cmd, const char* in_buf, char* out_buf, unsigned int out_len ); + // return 1 if locked // return 0 if unlocked // return -1 if request failed int request_lock_state_to_plugin ( int lock_type ); +// return 1 if shell command handled by plugin (handle) +// return 0 if shell command not handled by plugin (not handle) +int request_handlecmd_to_plugin ( int cmd, const char* in_buf ); + +// return nonnegative integer that is a socket descriptor for communication +// with async proc thread if success to create async proc thread +// return -1 if failed to create async proc thread +int request_shellcmd_to_plugin ( const char* in_buf ); + // return nonnegative integer that is a socket descriptor for communication // with async proc thread if success to create async proc thread // return -1 if failed to create async proc thread diff --git a/src/sdb.c b/src/sdb.c old mode 100644 new mode 100755 index d16a437..2732b81 --- a/src/sdb.c +++ b/src/sdb.c @@ -252,7 +252,8 @@ static char* get_sdb_log_conf(const char* key) if (end != NULL) { strncpy(value, start, end - start); } else { - strncpy(value, start, sizeof(value)); + strncpy(value, start, sizeof(value) - 1); + value[sizeof(value) - 1] = '\0'; } } else { sdb_close(fd); @@ -557,10 +558,10 @@ int handle_encr_packet(apacket* p, atransport *t){ enc_p->msg.arg1 = p->msg.arg1; if(t->encryption == ENCR_ON){ // 암호화 모드가 on인 경우 enc_p->msg.data_length = 13; - strncpy((char*)enc_p->data, "encryption:on", enc_p->msg.data_length); // encryption:on 메시지 전송 + strncpy((char*)enc_p->data, "encryption:on", enc_p->msg.data_length + 1); // encryption:on 메시지 전송 } else if(t->encryption == ENCR_OFF){ // 암호화 모드가 off인 경우 enc_p->msg.data_length = 14; - strncpy((char*)enc_p->data, "encryption:off", enc_p->msg.data_length); // encryption:off 메시지 전송 + strncpy((char*)enc_p->data, "encryption:off", enc_p->msg.data_length + 1); // encryption:off 메시지 전송 } send_packet(enc_p, t); } @@ -634,7 +635,7 @@ static void send_connect(atransport *t) if (extcmd != NULL) { char extbuf[BUF_SIZE] = {0,}; snprintf(extbuf, sizeof extbuf, "::%s", extcmd); - strncat((char*) cp->data, extbuf, sizeof(cp->data) - strlen(cp->data)- 1); + strncat((char*) cp->data, extbuf, sizeof(cp->data) - strlen((const char*)cp->data)- 1); } cp->msg.data_length = strlen((char*) cp->data) + 1; D("CNXN data: %s\n", (char*)cp->data); @@ -1690,6 +1691,7 @@ static int init_sdk_userinfo() { return 0; } +#if 0 static int safe_system(char *cmd, char *argv[], char *envp[]) { pid_t pid; int status; @@ -1712,6 +1714,7 @@ static int safe_system(char *cmd, char *argv[], char *envp[]) { } return 0; } +#endif static void init_sdk_requirements() { // set env variable for temporary diff --git a/src/services.c b/src/services.c old mode 100644 new mode 100755 index a6d9e90..6beb905 --- a/src/services.c +++ b/src/services.c @@ -60,6 +60,8 @@ struct stinfo { void *cookie; }; +extern int create_async_extcmd_proc_thread( int cmd, parameters* in ); + void *service_bootstrap_func(void *x) { stinfo *sti = x; @@ -897,7 +899,7 @@ static int create_syncproc_thread(const char *cmd) { int ret_fd; - ret_fd = create_sync_subprocess(file_sync_service, cmd); + ret_fd = create_sync_subprocess(file_sync_service, (void*)cmd); // FIXME: file missing bug when root on mode /* if (should_drop_privileges()) { @@ -1419,7 +1421,7 @@ int request_extcmd_to_plugin(const char* in_buf) { full_cmd[ENV_BUF_MAX - 1] = '\0'; } else { - strncat(full_cmd, cmd_name, strlen(cmd_name)); + strncat(full_cmd, cmd_name, ENV_BUF_MAX - 1); } int i = 1; @@ -1431,7 +1433,7 @@ int request_extcmd_to_plugin(const char* in_buf) { break; } strncat(full_cmd, " ",1); - strncat(full_cmd, tokens[i], strlen(tokens[i])); + strncat(full_cmd, tokens[i], ENV_BUF_MAX - 1); } D("full extcmd: %s\n", full_cmd); if (!strcmp(exec_type, "sync")) { diff --git a/src/subprocess.c b/src/subprocess.c old mode 100644 new mode 100755 index 6d7d847..7ad8529 --- a/src/subprocess.c +++ b/src/subprocess.c @@ -161,7 +161,9 @@ int main (int argc, char **argv, char **envp) } memset(&addr, 0, sizeof(addr)); addr.sun_family = AF_LOCAL; - strncpy(addr.sun_path, sockpath, strlen(sockpath)+1); + int len = sizeof(addr.sun_path) - 1; + strncpy(addr.sun_path, sockpath, len); + addr.sun_path[len] = '\0'; int slen = offsetof(struct sockaddr_un, sun_path) + strlen(sockpath); if (bind(sock, (struct sockaddr *)&addr, slen) == -1) { fprintf(stderr, "sdbu socket bind error, %d\n", errno);