1
0
mirror of https://github.com/MariaDB/server.git synced 2025-08-01 03:47:19 +03:00

Post-fix to "Adopt Debian's fix-FTBFS-on-GNU-Hurd.patch", part #2.

"my_snprintf(NULL, 0, ...)" does not follow what snprintf does. Change
the call in wsrep_dump_rbr_buf_with_header to use snprintf (note that
wsrep_dump_rbr_buf was using snprintf all the way).

Fix an off-by-one error in comparison so it actually prints the output
This commit is contained in:
Sergei Petrunia
2018-07-02 15:29:22 +03:00
parent 36ea82617c
commit 1d10c9afe0

View File

@ -327,11 +327,11 @@ void wsrep_dump_rbr_buf(THD *thd, const void* rbr_buf, size_t buf_len)
return; return;
} }
char *filename= (char *)malloc(len++); char *filename= (char *)malloc(len+1);
int len1= snprintf(filename, len, "%s/GRA_%ld_%lld.log", int len1= snprintf(filename, len, "%s/GRA_%ld_%lld.log",
wsrep_data_home_dir, thd->thread_id, wsrep_data_home_dir, thd->thread_id,
(long long)wsrep_thd_trx_seqno(thd)); (long long)wsrep_thd_trx_seqno(thd));
if (len >= len1) if (len > len1)
{ {
WSREP_ERROR("RBR dump path truncated: %d, skipping dump.", len); WSREP_ERROR("RBR dump path truncated: %d, skipping dump.", len);
free(filename); free(filename);
@ -466,22 +466,22 @@ void wsrep_dump_rbr_buf_with_header(THD *thd, const void *rbr_buf,
longlong thd_trx_seqno= (long long)wsrep_thd_trx_seqno(thd); longlong thd_trx_seqno= (long long)wsrep_thd_trx_seqno(thd);
int len= my_snprintf(NULL, 0, "%s/GRA_%ld_%lld_v2.log", int len= snprintf(NULL, 0, "%s/GRA_%ld_%lld_v2.log",
wsrep_data_home_dir, thd->thread_id, wsrep_data_home_dir, thd->thread_id,
thd_trx_seqno); thd_trx_seqno);
char *filename; char *filename;
if (len < 0 || !(filename= (char*)malloc(len++))) if (len < 0 || !(filename= (char*)malloc(len+1)))
{ {
WSREP_ERROR("snprintf error: %d, skipping dump.", len); WSREP_ERROR("snprintf error: %d, skipping dump.", len);
DBUG_VOID_RETURN; DBUG_VOID_RETURN;
} }
int len1= my_snprintf(filename, len, "%s/GRA_%ld_%lld_v2.log", int len1= snprintf(filename, len, "%s/GRA_%ld_%lld_v2.log",
wsrep_data_home_dir, thd->thread_id, wsrep_data_home_dir, thd->thread_id,
thd_trx_seqno); thd_trx_seqno);
if (len >= len1) if (len > len1)
{ {
WSREP_ERROR("RBR dump path truncated: %d, skipping dump.", len); WSREP_ERROR("RBR dump path truncated: %d, skipping dump.", len);
free(filename); free(filename);