Changed sprintf calls to snprintf calls and fixed compiler warnings.

This commit is contained in:
Markus Makela
2015-08-18 10:50:48 +03:00
parent 501ea8ffc2
commit 98ab399e6e
9 changed files with 75 additions and 26 deletions

View File

@ -106,6 +106,8 @@ int main(int argc, char* argv[])
} }
succp = skygw_logmanager_init( log_argc, log_argv); succp = skygw_logmanager_init( log_argc, log_argv);
if(!succp)
fprintf(stderr, "Log manager initialization failed.\n");
ss_dassert(succp); ss_dassert(succp);
t = time(NULL); t = time(NULL);
@ -476,16 +478,22 @@ static void* thr_run(
skygw_log_flush(LOGFILE_MESSAGE); skygw_log_flush(LOGFILE_MESSAGE);
logstr = ("Hi, how are you?"); logstr = ("Hi, how are you?");
err = skygw_log_write(LOGFILE_MESSAGE, logstr); err = skygw_log_write(LOGFILE_MESSAGE, logstr);
if(err != 0)
fprintf(stderr,"Error, log write failed.\n");
ss_dassert(err == 0); ss_dassert(err == 0);
skygw_logmanager_done(); skygw_logmanager_done();
skygw_log_flush(LOGFILE_TRACE); skygw_log_flush(LOGFILE_TRACE);
skygw_log_flush(LOGFILE_MESSAGE); skygw_log_flush(LOGFILE_MESSAGE);
logstr = ("I was wondering, you know, it has been such a lovely weather whole morning and I thought that would you like to come to my place and have a little piece of cheese with us. Just me and my mom - and you, of course. Then, if you wish, we could listen to the radio and keep company for our little Steven, my mom's cat, you know."); logstr = ("I was wondering, you know, it has been such a lovely weather whole morning and I thought that would you like to come to my place and have a little piece of cheese with us. Just me and my mom - and you, of course. Then, if you wish, we could listen to the radio and keep company for our little Steven, my mom's cat, you know.");
if(err != 0)
fprintf(stderr,"Error, log write failed.\n");
ss_dassert(err == 0); ss_dassert(err == 0);
err = skygw_log_write(LOGFILE_MESSAGE, logstr); err = skygw_log_write(LOGFILE_MESSAGE, logstr);
skygw_logmanager_init( 0, NULL); skygw_logmanager_init( 0, NULL);
logstr = ("Testing. One, two, three\n"); logstr = ("Testing. One, two, three\n");
err = skygw_log_write(LOGFILE_ERROR, logstr); err = skygw_log_write(LOGFILE_ERROR, logstr);
if(err != 0)
fprintf(stderr,"Error, log write failed.\n");
ss_dassert(err == 0); ss_dassert(err == 0);
skygw_logmanager_init( 0, NULL); skygw_logmanager_init( 0, NULL);
skygw_logmanager_init( 0, NULL); skygw_logmanager_init( 0, NULL);
@ -494,11 +502,15 @@ static void* thr_run(
skygw_log_enable(LOGFILE_TRACE); skygw_log_enable(LOGFILE_TRACE);
err = skygw_log_write(LOGFILE_TRACE, logstr); err = skygw_log_write(LOGFILE_TRACE, logstr);
if(err != 0)
fprintf(stderr,"Error, log write failed.\n");
ss_dassert(err == 0); ss_dassert(err == 0);
skygw_logmanager_done(); skygw_logmanager_done();
skygw_logmanager_init( 0, NULL); skygw_logmanager_init( 0, NULL);
logstr = ("Rather more surprising, at least at first sight, is the fact that a reference to a[i] can also be written as *(a+i). In evaluating a[i], C converts it to *(a+i) immediately; the two forms are equivalent. Applying the operatos & to both parts of this equivalence, it follows that &a[i] and a+i are also identical: a+i is the address of the i-th element beyond a."); logstr = ("Rather more surprising, at least at first sight, is the fact that a reference to a[i] can also be written as *(a+i). In evaluating a[i], C converts it to *(a+i) immediately; the two forms are equivalent. Applying the operatos & to both parts of this equivalence, it follows that &a[i] and a+i are also identical: a+i is the address of the i-th element beyond a.");
err = skygw_log_write(LOGFILE_ERROR, logstr); err = skygw_log_write(LOGFILE_ERROR, logstr);
if(err != 0)
fprintf(stderr,"Error, log write failed.\n");
ss_dassert(err == 0); ss_dassert(err == 0);
skygw_logmanager_init( 0, NULL); skygw_logmanager_init( 0, NULL);
skygw_logmanager_done(); skygw_logmanager_done();
@ -507,6 +519,8 @@ static void* thr_run(
skygw_logmanager_done(); skygw_logmanager_done();
logstr = ("..and you?"); logstr = ("..and you?");
err = skygw_log_write(LOGFILE_MESSAGE, logstr); err = skygw_log_write(LOGFILE_MESSAGE, logstr);
if(err != 0)
fprintf(stderr,"Error, log write failed.\n");
ss_dassert(err == 0); ss_dassert(err == 0);
skygw_logmanager_init( 0, NULL); skygw_logmanager_init( 0, NULL);
skygw_logmanager_init( 0, NULL); skygw_logmanager_init( 0, NULL);
@ -515,14 +529,20 @@ static void* thr_run(
skygw_log_enable(LOGFILE_TRACE); skygw_log_enable(LOGFILE_TRACE);
#endif #endif
err = skygw_log_write(LOGFILE_TRACE, logstr); err = skygw_log_write(LOGFILE_TRACE, logstr);
if(err != 0)
fprintf(stderr,"Error, log write failed.\n");
ss_dassert(err == 0); ss_dassert(err == 0);
skygw_logmanager_init( 0, NULL); skygw_logmanager_init( 0, NULL);
logstr = ("Rather more surprising, at least at first sight, is the fact that a reference to a[i] can also be written as *(a+i). In evaluating a[i], C converts it to *(a+i) immediately; the two forms are equivalent. Applying the operatos & to both parts of this equivalence, it follows that &a[i] and a+i are also identical: a+i is the address of the i-th element beyond a."); logstr = ("Rather more surprising, at least at first sight, is the fact that a reference to a[i] can also be written as *(a+i). In evaluating a[i], C converts it to *(a+i) immediately; the two forms are equivalent. Applying the operatos & to both parts of this equivalence, it follows that &a[i] and a+i are also identical: a+i is the address of the i-th element beyond a.");
err = skygw_log_write(LOGFILE_ERROR, logstr); err = skygw_log_write(LOGFILE_ERROR, logstr);
if(err != 0)
fprintf(stderr,"Error, log write failed.\n");
ss_dassert(err == 0); ss_dassert(err == 0);
skygw_logmanager_init( 0, NULL); skygw_logmanager_init( 0, NULL);
logstr = ("..... and you too?"); logstr = ("..... and you too?");
err = skygw_log_write(LOGFILE_MESSAGE, logstr); err = skygw_log_write(LOGFILE_MESSAGE, logstr);
if(err != 0)
fprintf(stderr,"Error, log write failed.\n");
ss_dassert(err == 0); ss_dassert(err == 0);
skygw_logmanager_done(); skygw_logmanager_done();
#if !defined(SS_DEBUG) #if !defined(SS_DEBUG)
@ -534,14 +554,20 @@ static void* thr_run(
skygw_log_enable(LOGFILE_TRACE); skygw_log_enable(LOGFILE_TRACE);
#endif #endif
err = skygw_log_write(LOGFILE_TRACE, logstr); err = skygw_log_write(LOGFILE_TRACE, logstr);
if(err != 0)
fprintf(stderr,"Error, log write failed.\n");
ss_dassert(err == 0); ss_dassert(err == 0);
skygw_logmanager_done(); skygw_logmanager_done();
logstr = ("Testing. One, two, three, four\n"); logstr = ("Testing. One, two, three, four\n");
err = skygw_log_write(LOGFILE_ERROR, logstr); err = skygw_log_write(LOGFILE_ERROR, logstr);
if(err != 0)
fprintf(stderr,"Error, log write failed.\n");
ss_dassert(err == 0); ss_dassert(err == 0);
skygw_logmanager_init( 0, NULL); skygw_logmanager_init( 0, NULL);
logstr = ("Testing. One, two, three, .. where was I?\n"); logstr = ("Testing. One, two, three, .. where was I?\n");
err = skygw_log_write(LOGFILE_ERROR, logstr); err = skygw_log_write(LOGFILE_ERROR, logstr);
if(err != 0)
fprintf(stderr,"Error, log write failed.\n");
ss_dassert(err == 0); ss_dassert(err == 0);
skygw_logmanager_init( 0, NULL); skygw_logmanager_init( 0, NULL);
skygw_logmanager_init( 0, NULL); skygw_logmanager_init( 0, NULL);
@ -597,6 +623,8 @@ static void* thr_run_morelog(
"%s - iteration # %d", "%s - iteration # %d",
str, str,
i); i);
if(err != 0)
fprintf(stderr,"Error, log write failed.\n");
} }
simple_mutex_lock(td->mtx, true); simple_mutex_lock(td->mtx, true);
*td->nactive -= 1; *td->nactive -= 1;

View File

@ -27,7 +27,7 @@ int main(int argc, char** argv)
{ {
int iterations = 0, i, interval = 10; int iterations = 0, i, interval = 10;
int block_size; int block_size;
int succp = 0, err = 0; int succp, err = 0;
char cwd[1024]; char cwd[1024];
char tmp[2048]; char tmp[2048];
char *message; char *message;
@ -71,6 +71,8 @@ int main(int argc, char** argv)
interval = atoi(argv[2]); interval = atoi(argv[2]);
succp = skygw_logmanager_init( 3, optstr); succp = skygw_logmanager_init( 3, optstr);
if(!succp)
fprintf(stderr,"Error, log manager initialization failed.\n");
ss_dassert(succp); ss_dassert(succp);
skygw_log_disable(LOGFILE_TRACE); skygw_log_disable(LOGFILE_TRACE);

View File

@ -122,7 +122,8 @@ char fname[1024], *home;
char uname[80], passwd[80]; char uname[80], passwd[80];
initialise(); initialise();
sprintf(fname, "%s/passwd", get_datadir()); snprintf(fname,1023, "%s/passwd", get_datadir());
fname[1023] = '\0';
if ((fp = fopen(fname, "r")) == NULL) if ((fp = fopen(fname, "r")) == NULL)
return NULL; return NULL;
if ((rval = users_alloc()) == NULL) if ((rval = users_alloc()) == NULL)
@ -153,8 +154,8 @@ FILE *fp;
char fname[1024], *home, *cpasswd; char fname[1024], *home, *cpasswd;
initialise(); initialise();
sprintf(fname, "%s/passwd", get_datadir()); snprintf(fname,1023, "%s/passwd", get_datadir());
fname[1023] = '\0';
if (users == NULL) if (users == NULL)
{ {
LOGIF(LM, LOGIF(LM,
@ -246,8 +247,10 @@ char* admin_remove_user(
/** /**
* Open passwd file and remove user from the file. * Open passwd file and remove user from the file.
*/ */
sprintf(fname, "%s/passwd", get_datadir()); snprintf(fname,1023, "%s/passwd", get_datadir());
sprintf(fname_tmp, "%s/passwd_tmp", get_datadir()); snprintf(fname_tmp,1023, "%s/passwd_tmp", get_datadir());
fname[1023] = '\0';
fname_tmp[1023] = '\0';
/** /**
* Rewrite passwd file from memory. * Rewrite passwd file from memory.
*/ */

View File

@ -719,23 +719,26 @@ static char* check_dir_access(
if(access(dirname,F_OK) != 0) if(access(dirname,F_OK) != 0)
{ {
sprintf(errbuf,"Can't access '%s'.",dirname); snprintf(errbuf,PATH_MAX*2-1,"Can't access '%s'.",dirname);
errbuf[PATH_MAX*2-1] = '\0';
errstr = strdup(errbuf); errstr = strdup(errbuf);
goto retblock; goto retblock;
} }
if (rd && !file_is_readable(dirname)) if (rd && !file_is_readable(dirname))
{ {
sprintf(errbuf,"MaxScale doesn't have read permission " snprintf(errbuf,PATH_MAX*2-1,"MaxScale doesn't have read permission "
"to '%s'.",dirname); "to '%s'.",dirname);
errbuf[PATH_MAX*2-1] = '\0';
errstr = strdup(errbuf); errstr = strdup(errbuf);
goto retblock; goto retblock;
} }
if (wr && !file_is_writable(dirname)) if (wr && !file_is_writable(dirname))
{ {
sprintf(errbuf,"MaxScale doesn't have write permission " snprintf(errbuf,PATH_MAX*2-1,"MaxScale doesn't have write permission "
"to '%s'.",dirname); "to '%s'.",dirname);
errbuf[PATH_MAX*2-1] = '\0';
errstr = strdup(errbuf); errstr = strdup(errbuf);
goto retblock; goto retblock;
} }
@ -1076,7 +1079,8 @@ int main(int argc, char **argv)
sigemptyset(&sigpipe_mask); sigemptyset(&sigpipe_mask);
sigaddset(&sigpipe_mask, SIGPIPE); sigaddset(&sigpipe_mask, SIGPIPE);
progname = *argv; progname = *argv;
sprintf(datadir, "%s", default_datadir); snprintf(datadir,PATH_MAX, "%s", default_datadir);
datadir[PATH_MAX] = '\0';
#if defined(FAKE_CODE) #if defined(FAKE_CODE)
memset(conn_open, 0, sizeof(bool)*10240); memset(conn_open, 0, sizeof(bool)*10240);
memset(dcb_fake_write_errno, 0, sizeof(unsigned char)*10240); memset(dcb_fake_write_errno, 0, sizeof(unsigned char)*10240);
@ -1191,7 +1195,8 @@ int main(int argc, char **argv)
} }
break; break;
case 'D': case 'D':
sprintf(datadir,"%s",optarg); snprintf(datadir,PATH_MAX,"%s",optarg);
datadir[PATH_MAX] = '\0';
set_datadir(strdup(optarg)); set_datadir(strdup(optarg));
datadir_defined = true; datadir_defined = true;
break; break;
@ -1566,6 +1571,7 @@ int main(int argc, char **argv)
*/ */
char pathbuf[PATH_MAX+1]; char pathbuf[PATH_MAX+1];
snprintf(pathbuf,PATH_MAX,"%s",get_configdir()); snprintf(pathbuf,PATH_MAX,"%s",get_configdir());
pathbuf[PATH_MAX] = '\0';
if(pathbuf[strlen(pathbuf)-1] != '/') if(pathbuf[strlen(pathbuf)-1] != '/')
strcat(pathbuf,"/"); strcat(pathbuf,"/");
@ -1584,7 +1590,8 @@ int main(int argc, char **argv)
/** Use the cache dir for the mysql folder of the embedded library */ /** Use the cache dir for the mysql folder of the embedded library */
sprintf(mysql_home, "%s/mysql", get_cachedir()); snprintf(mysql_home,PATH_MAX, "%s/mysql", get_cachedir());
mysql_home[PATH_MAX] = '\0';
setenv("MYSQL_HOME", mysql_home, 1); setenv("MYSQL_HOME", mysql_home, 1);
@ -1657,7 +1664,8 @@ int main(int argc, char **argv)
* machine. * machine.
*/ */
sprintf(datadir,"%s/data",get_datadir()); snprintf(datadir,PATH_MAX,"%s/data",get_datadir());
datadir[PATH_MAX] = '\0';
if(mkdir(datadir, 0777) != 0){ if(mkdir(datadir, 0777) != 0){
if(errno != EEXIST){ if(errno != EEXIST){
@ -1667,7 +1675,7 @@ int main(int argc, char **argv)
} }
} }
sprintf(datadir, "%s/data/data%d", get_datadir(), getpid()); snprintf(datadir,PATH_MAX, "%s/data/data%d", get_datadir(), getpid());
if(mkdir(datadir, 0777) != 0){ if(mkdir(datadir, 0777) != 0){
@ -2139,7 +2147,8 @@ static int cnf_preparser(void* data, const char* section, const char* name, cons
{ {
if(handle_path_arg(&tmp,(char*)value,NULL,true,false)) if(handle_path_arg(&tmp,(char*)value,NULL,true,false))
{ {
sprintf(datadir,"%s",tmp); snprintf(datadir,PATH_MAX,"%s",tmp);
datadir[PATH_MAX] = '\0';
set_datadir(tmp); set_datadir(tmp);
datadir_defined = true; datadir_defined = true;
} }

View File

@ -495,9 +495,10 @@ MODULES *ptr;
resultset_row_set(row, 0, ptr->module); resultset_row_set(row, 0, ptr->module);
resultset_row_set(row, 1, ptr->type); resultset_row_set(row, 1, ptr->type);
resultset_row_set(row, 2, ptr->version); resultset_row_set(row, 2, ptr->version);
sprintf(buf, "%d.%d.%d", ptr->info->api_version.major, snprintf(buf,19, "%d.%d.%d", ptr->info->api_version.major,
ptr->info->api_version.minor, ptr->info->api_version.minor,
ptr->info->api_version.patch); ptr->info->api_version.patch);
buf[19] = '\0';
resultset_row_set(row, 3, buf); resultset_row_set(row, 3, buf);
resultset_row_set(row, 4, ptr->info->status == MODULE_IN_DEVELOPMENT resultset_row_set(row, 4, ptr->info->status == MODULE_IN_DEVELOPMENT
? "In Development" ? "In Development"

View File

@ -1645,17 +1645,21 @@ RESULT_ROW *row;
resultset_row_set(row, 0, "< 100ms"); resultset_row_set(row, 0, "< 100ms");
else if (*rowno == N_QUEUE_TIMES - 1) else if (*rowno == N_QUEUE_TIMES - 1)
{ {
sprintf(buf, "> %2d00ms", N_QUEUE_TIMES); snprintf(buf,39, "> %2d00ms", N_QUEUE_TIMES);
buf[39] = '\0';
resultset_row_set(row, 0, buf); resultset_row_set(row, 0, buf);
} }
else else
{ {
sprintf(buf, "%2d00 - %2d00ms", *rowno, (*rowno) + 1); snprintf(buf,39, "%2d00 - %2d00ms", *rowno, (*rowno) + 1);
buf[39] = '\0';
resultset_row_set(row, 0, buf); resultset_row_set(row, 0, buf);
} }
sprintf(buf, "%d", queueStats.qtimes[*rowno]); snprintf(buf,39, "%d", queueStats.qtimes[*rowno]);
buf[39] = '\0';
resultset_row_set(row, 1, buf); resultset_row_set(row, 1, buf);
sprintf(buf, "%d", queueStats.exectimes[*rowno]); snprintf(buf,39, "%d", queueStats.exectimes[*rowno]);
buf[39] = '\0';
resultset_row_set(row, 2, buf); resultset_row_set(row, 2, buf);
(*rowno)++; (*rowno)++;
return row; return row;

View File

@ -234,7 +234,8 @@ if(strlen(path) > PATH_MAX)
return 1; return 1;
} }
sprintf(secret_file,"%s/.secrets",path); snprintf(secret_file,PATH_MAX + 9,"%s/.secrets",path);
secret_file[PATH_MAX + 9] = '\0';
/* Open for writing | Create | Truncate the file for writing */ /* Open for writing | Create | Truncate the file for writing */
if ((fd = open(secret_file, O_CREAT | O_WRONLY | O_TRUNC, S_IRUSR)) < 0) if ((fd = open(secret_file, O_CREAT | O_WRONLY | O_TRUNC, S_IRUSR)) < 0)

View File

@ -1031,7 +1031,8 @@ SESSION *ptr;
} }
cbdata->index++; cbdata->index++;
row = resultset_make_row(set); row = resultset_make_row(set);
sprintf(buf, "%p", ptr); snprintf(buf,19, "%p", ptr);
buf[19] = '\0';
resultset_row_set(row, 0, buf); resultset_row_set(row, 0, buf);
resultset_row_set(row, 1, ((ptr->client && ptr->client->remote) resultset_row_set(row, 1, ((ptr->client && ptr->client->remote)
? ptr->client->remote : "")); ? ptr->client->remote : ""));

View File

@ -37,7 +37,7 @@
* test1 Allocate table of users and mess around with it * test1 Allocate table of users and mess around with it
* *
*/ */
void skygw_log_sync_all(void);
static int static int
test1() test1()
{ {