From 8208f3a728d17237d3d206276ee11f298d16f8c3 Mon Sep 17 00:00:00 2001 From: MassimilianoPinto Date: Fri, 23 Oct 2015 18:44:39 +0200 Subject: [PATCH] strerror_r update strerror_r update --- server/modules/routing/binlog/blr.c | 16 ++++---- server/modules/routing/binlog/blr_file.c | 48 ++++++++-------------- server/modules/routing/binlog/blr_master.c | 10 ++--- server/modules/routing/binlog/blr_slave.c | 5 +-- 4 files changed, 30 insertions(+), 49 deletions(-) diff --git a/server/modules/routing/binlog/blr.c b/server/modules/routing/binlog/blr.c index b92112f22..726e8d44a 100644 --- a/server/modules/routing/binlog/blr.c +++ b/server/modules/routing/binlog/blr.c @@ -544,14 +544,13 @@ char task_name[BLRM_TASK_NAME_LEN+1] = ""; int mkdir_rval; mkdir_rval = mkdir(inst->binlogdir, 0700); if (mkdir_rval == -1) { - char err_msg[BLRM_STRERROR_R_MSG_SIZE+1] = ""; - strerror_r(errno, err_msg, BLRM_STRERROR_R_MSG_SIZE); + char err_msg[STRERROR_BUFLEN]; skygw_log_write_flush(LOGFILE_ERROR, "Error : Service %s, Failed to create binlog directory '%s': [%d] %s", service->name, inst->binlogdir, errno, - err_msg); + strerror_r(errno, err_msg, sizeof(err_msg))); free(inst); return NULL; @@ -1402,7 +1401,7 @@ errorReply(ROUTER *instance, void *router_session, GWBUF *message, DCB *backend_ ROUTER_INSTANCE *router = (ROUTER_INSTANCE *)instance; int error; socklen_t len; -char msg[BLRM_STRERROR_R_MSG_SIZE + 1 + 5] = ""; +char msg[STRERROR_BUFLEN + 1 + 5] = ""; char *errmsg; unsigned long mysql_errno; @@ -1427,8 +1426,8 @@ unsigned long mysql_errno; len = sizeof(error); if (router->master && getsockopt(router->master->fd, SOL_SOCKET, SO_ERROR, &error, &len) == 0 && error != 0) { - strerror_r(error, msg, BLRM_STRERROR_R_MSG_SIZE); - strcat(msg, " "); + char errbuf[STRERROR_BUFLEN]; + sprintf(msg, "%s ", strerror_r(error, errbuf, sizeof(errbuf))); } else strcpy(msg, ""); @@ -1939,14 +1938,13 @@ int mkdir_rval = 0; if (mkdir_rval == -1) { - char err_msg[BLRM_STRERROR_R_MSG_SIZE+1] = ""; - strerror_r(errno, err_msg, BLRM_STRERROR_R_MSG_SIZE); + char err_msg[STRERROR_BUFLEN]; skygw_log_write(LOGFILE_ERROR, "Error : Service %s, Failed to create directory '%s': [%d] %s", service->name, path, errno, - err_msg); + strerror_r(errno, err_msg, sizeof(err_msg))); return -1; } diff --git a/server/modules/routing/binlog/blr_file.c b/server/modules/routing/binlog/blr_file.c index 1c7a6fbf4..253f5312e 100644 --- a/server/modules/routing/binlog/blr_file.c +++ b/server/modules/routing/binlog/blr_file.c @@ -125,13 +125,11 @@ struct dirent *dp; root_len = strlen(router->fileroot); if ((dirp = opendir(path)) == NULL) { - char err_msg[BLRM_STRERROR_R_MSG_SIZE+1]=""; - strerror_r(errno, err_msg, BLRM_STRERROR_R_MSG_SIZE); - + char err_msg[BLRM_STRERROR_R_MSG_SIZE]; LOGIF(LE, (skygw_log_write(LOGFILE_ERROR, "%s: Unable to read the binlog directory %s, %s.", router->service->name, router->binlogdir, - err_msg))); + strerror_r(errno, err_msg, sizeof(err_msg))))); return 0; } while ((dp = readdir(dirp)) != NULL) @@ -227,12 +225,11 @@ int fd; } else { - char err_msg[BLRM_STRERROR_R_MSG_SIZE+1] = ""; - strerror_r(errno, err_msg, BLRM_STRERROR_R_MSG_SIZE); + char err_msg[STRERROR_BUFLEN]; LOGIF(LE, (skygw_log_write(LOGFILE_ERROR, "%s: Failed to create binlog file %s, %s.", - router->service->name, path, err_msg))); + router->service->name, path, strerror_r(errno, err_msg, sizeof(err_msg))))); return 0; } fsync(fd); @@ -306,14 +303,13 @@ int n; if ((n = pwrite(router->binlog_fd, buf, hdr->event_size, hdr->next_pos - hdr->event_size)) != hdr->event_size) { - char err_msg[BLRM_STRERROR_R_MSG_SIZE+1] = ""; - strerror_r(errno, err_msg, BLRM_STRERROR_R_MSG_SIZE); + char err_msg[STRERROR_BUFLEN]; LOGIF(LE, (skygw_log_write(LOGFILE_ERROR, "%s: Failed to write binlog record at %d of %s, %s. " "Truncating to previous record.", router->service->name, hdr->next_pos - hdr->event_size, router->binlog_name, - err_msg))); + strerror_r(errno, err_msg, sizeof(err_msg))))); /* Remove any partual event that was written */ ftruncate(router->binlog_fd, hdr->next_pos - hdr->event_size); return 0; @@ -461,11 +457,9 @@ struct stat statb; break; case -1: { - char err_msg[BLRM_STRERROR_R_MSG_SIZE+1] = ""; - strerror_r(errno, err_msg, BLRM_STRERROR_R_MSG_SIZE); - + char err_msg[STRERROR_BUFLEN]; snprintf(errmsg, BINLOG_ERROR_MSG_LEN, "Failed to read binlog file '%s'; (%s), event at %lu", - file->binlogname, err_msg, pos); + file->binlogname, strerror_r(errno, err_msg, sizeof(err_msg)), pos); if (errno == EBADF) snprintf(errmsg, BINLOG_ERROR_MSG_LEN, "Bad file descriptor for binlog file '%s', refcount %d, descriptor %d, event at %lu", @@ -531,11 +525,9 @@ struct stat statb; break; case -1: { - char err_msg[BLRM_STRERROR_R_MSG_SIZE+1] = ""; - strerror_r(errno, err_msg, BLRM_STRERROR_R_MSG_SIZE); - + char err_msg[STRERROR_BUFLEN]; snprintf(errmsg, BINLOG_ERROR_MSG_LEN, "Failed to reread header in binlog file '%s'; (%s), event at %lu", - file->binlogname, err_msg, pos); + file->binlogname, strerror_r(errno, err_msg, sizeof(err_msg)), pos); if (errno == EBADF) snprintf(errmsg, BINLOG_ERROR_MSG_LEN, "Bad file descriptor rereading header for binlog file '%s', " @@ -588,12 +580,10 @@ struct stat statb; { if (n == -1) { - char err_msg[BLRM_STRERROR_R_MSG_SIZE+1] = ""; - strerror_r(errno, err_msg, BLRM_STRERROR_R_MSG_SIZE); - + char err_msg[STRERROR_BUFLEN]; snprintf(errmsg, BINLOG_ERROR_MSG_LEN, "Error reading the binlog event at %lu in binlog file '%s';" "(%s), expected %d bytes.", - pos, file->binlogname, err_msg, hdr->event_size - BINLOG_EVENT_HDR_LEN); + pos, file->binlogname, strerror_r(errno, err_msg, sizeof(err_msg)), hdr->event_size - BINLOG_EVENT_HDR_LEN); } else { @@ -1587,7 +1577,7 @@ int rc; char path[(PATH_MAX - 15) + 1] = ""; char filename[(PATH_MAX - 4) + 1] = ""; char tmp_file[PATH_MAX + 1] = ""; -char err_msg[BLRM_STRERROR_R_MSG_SIZE+1] = ""; +char err_msg[STRERROR_BUFLEN]; strncpy(path, router->binlogdir, (PATH_MAX - 15)); @@ -1600,14 +1590,12 @@ char err_msg[BLRM_STRERROR_R_MSG_SIZE+1] = ""; /* open file for writing */ config_file = fopen(tmp_file,"wb"); if (config_file == NULL) { - strerror_r(errno, err_msg, BLRM_STRERROR_R_MSG_SIZE); - snprintf(error, BINLOG_ERROR_MSG_LEN, "%s, errno %u", err_msg, errno); + snprintf(error, BINLOG_ERROR_MSG_LEN, "%s, errno %u", strerror_r(errno, err_msg, sizeof(err_msg)), errno); return 2; } if(chmod(tmp_file, S_IRUSR | S_IWUSR) < 0) { - strerror_r(errno, err_msg, BLRM_STRERROR_R_MSG_SIZE); - snprintf(error, BINLOG_ERROR_MSG_LEN, "%s, errno %u", err_msg, errno); + snprintf(error, BINLOG_ERROR_MSG_LEN, "%s, errno %u", strerror_r(errno, err_msg, sizeof(err_msg)), errno); return 2; } @@ -1627,14 +1615,12 @@ char err_msg[BLRM_STRERROR_R_MSG_SIZE+1] = ""; rc = rename(tmp_file, filename); if (rc == -1) { - strerror_r(errno, err_msg, BLRM_STRERROR_R_MSG_SIZE); - snprintf(error, BINLOG_ERROR_MSG_LEN, "%s, errno %u", err_msg, errno); + snprintf(error, BINLOG_ERROR_MSG_LEN, "%s, errno %u", strerror_r(errno, err_msg, sizeof(err_msg)), errno); return 3; } if(chmod(filename, S_IRUSR | S_IWUSR) < 0) { - strerror_r(errno, err_msg, BLRM_STRERROR_R_MSG_SIZE); - snprintf(error, BINLOG_ERROR_MSG_LEN, "%s, errno %u", err_msg, errno); + snprintf(error, BINLOG_ERROR_MSG_LEN, "%s, errno %u", strerror_r(errno, err_msg, sizeof(err_msg)), errno); return 3; } diff --git a/server/modules/routing/binlog/blr_master.c b/server/modules/routing/binlog/blr_master.c index fde11703f..3ac8086d5 100644 --- a/server/modules/routing/binlog/blr_master.c +++ b/server/modules/routing/binlog/blr_master.c @@ -1946,13 +1946,12 @@ int event_limit; break; case -1: { - char err_msg[BLRM_STRERROR_R_MSG_SIZE+1] = ""; - strerror_r(errno, err_msg, BLRM_STRERROR_R_MSG_SIZE); + char err_msg[STRERROR_BUFLEN]; LOGIF(LE, (skygw_log_write(LOGFILE_ERROR, "Error: Reading saved events: failed to read binlog " "file %s at position %d" " (%s).", router->binlog_name, - pos, err_msg))); + pos, strerror_r(errno, err_msg, sizeof(err_msg))))); if (errno == EBADF) LOGIF(LE, (skygw_log_write(LOGFILE_ERROR, @@ -2010,13 +2009,12 @@ int event_limit; { if (n == -1) { - char err_msg[BLRM_STRERROR_R_MSG_SIZE+1] = ""; - strerror_r(errno, err_msg, BLRM_STRERROR_R_MSG_SIZE); + char err_msg[STRERROR_BUFLEN]; LOGIF(LE, (skygw_log_write(LOGFILE_ERROR, "Error: Reading saved events: the event at %ld in %s. " "%s, expected %d bytes.", pos, router->binlog_name, - err_msg, hdr->event_size - 19))); + strerror_r(errno, err_msg, sizeof(err_msg)), hdr->event_size - 19))); } else { LOGIF(LE, (skygw_log_write(LOGFILE_ERROR, "Error: Reading saved events: short read when reading " diff --git a/server/modules/routing/binlog/blr_slave.c b/server/modules/routing/binlog/blr_slave.c index e7e1a0195..1c9974419 100644 --- a/server/modules/routing/binlog/blr_slave.c +++ b/server/modules/routing/binlog/blr_slave.c @@ -760,9 +760,8 @@ extern char *strcasestr(); removed_cfg = unlink(path); if (removed_cfg == -1) { - char err_msg[BLRM_STRERROR_R_MSG_SIZE+1]=""; - strerror_r(errno, err_msg, BLRM_STRERROR_R_MSG_SIZE); - snprintf(error_string, BINLOG_ERROR_MSG_LEN, "Error removing %s, %s, errno %u", path, err_msg, errno); + char err_msg[STRERROR_BUFLEN]; + snprintf(error_string, BINLOG_ERROR_MSG_LEN, "Error removing %s, %s, errno %u", path, strerror_r(errno, err_msg, sizeof(err_msg)), errno); LOGIF(LE, (skygw_log_write_flush(LOGFILE_ERROR, "%s: %s", router->service->name, error_string))); }