aboutsummaryrefslogtreecommitdiffstats
path: root/capchild/capture_sync.c
diff options
context:
space:
mode:
authorGuy Harris <guy@alum.mit.edu>2019-02-01 11:24:16 -0800
committerGuy Harris <guy@alum.mit.edu>2019-02-01 20:35:05 +0000
commitb3bb4aa8f4ee948041442f2e35fb0a4aa3d28667 (patch)
tree80330ba41e64f61a529dc23f0506c72091c93e82 /capchild/capture_sync.c
parent961d8bfc5d37edf5f3361f4cf0f4e251175de1fc (diff)
Have win32strerror() return interned strings.
That's what g_strerror() does, and it means that the caller doesn't need to free the string (it's kept around, and if another call to win32strerror() generates the same string, the interned string is returned). Change-Id: I564bb700fabe2629131fb1c6468494dd5f5fc9e3 Reviewed-on: https://code.wireshark.org/review/31854 Petri-Dish: Guy Harris <guy@alum.mit.edu> Tested-by: Petri Dish Buildbot Reviewed-by: Guy Harris <guy@alum.mit.edu>
Diffstat (limited to 'capchild/capture_sync.c')
-rw-r--r--capchild/capture_sync.c30
1 files changed, 10 insertions, 20 deletions
diff --git a/capchild/capture_sync.c b/capchild/capture_sync.c
index ece0ae00ad..c3bd19cc5e 100644
--- a/capchild/capture_sync.c
+++ b/capchild/capture_sync.c
@@ -206,7 +206,6 @@ sync_pipe_start(capture_options *capture_opts, capture_session *cap_session, inf
PROCESS_INFORMATION pi;
char control_id[ARGV_NUMBER_LEN];
gchar *signal_pipe_name;
- char *errmsg;
#else
char errmsg[1024+1];
int sync_pipe[2]; /* pipe used to send messages from child to parent */
@@ -434,9 +433,8 @@ sync_pipe_start(capture_options *capture_opts, capture_session *cap_session, inf
/* (increase this value if you have trouble while fast capture file switches) */
if (! CreatePipe(&sync_pipe_read, &sync_pipe_write, &sa, 5120)) {
/* Couldn't create the pipe between parent and child. */
- errmsg = win32strerror(GetLastError());
- report_failure("Couldn't create sync pipe: %s", errmsg);
- g_free(errmsg);
+ report_failure("Couldn't create sync pipe: %s",
+ win32strerror(GetLastError()));
free_argv(argv, argc);
return FALSE;
}
@@ -466,9 +464,8 @@ sync_pipe_start(capture_options *capture_opts, capture_session *cap_session, inf
if (signal_pipe == INVALID_HANDLE_VALUE) {
/* Couldn't create the signal pipe between parent and child. */
- errmsg = win32strerror(GetLastError());
- report_failure("Couldn't create signal pipe: %s", errmsg);
- g_free(errmsg);
+ report_failure("Couldn't create signal pipe: %s",
+ win32strerror(GetLastError()));
ws_close(sync_pipe_read_fd); /* Should close sync_pipe_read */
CloseHandle(sync_pipe_write);
free_argv(argv, argc);
@@ -526,10 +523,8 @@ sync_pipe_start(capture_options *capture_opts, capture_session *cap_session, inf
/* call dumpcap */
if(!win32_create_process(argv[0], args->str, NULL, NULL, TRUE,
CREATE_NEW_CONSOLE, NULL, NULL, &si, &pi)) {
- errmsg = win32strerror(GetLastError());
report_failure("Couldn't run %s in child process: %s",
- args->str, errmsg);
- g_free(errmsg);
+ args->str, win32strerror(GetLastError()));
ws_close(sync_pipe_read_fd); /* Should close sync_pipe_read */
CloseHandle(sync_pipe_write);
CloseHandle(signal_pipe);
@@ -652,7 +647,6 @@ sync_pipe_open_command(char* const argv[], int *data_read_fd,
STARTUPINFO si;
PROCESS_INFORMATION pi;
int i;
- char *errmsg;
#else
char errmsg[1024+1];
int sync_pipe[2]; /* pipe used to send messages from child to parent */
@@ -681,9 +675,8 @@ sync_pipe_open_command(char* const argv[], int *data_read_fd,
/* (increase this value if you have trouble while fast capture file switches) */
if (! CreatePipe(&sync_pipe[PIPE_READ], &sync_pipe[PIPE_WRITE], &sa, 5120)) {
/* Couldn't create the message pipe between parent and child. */
- errmsg = win32strerror(GetLastError());
- *msg = g_strdup_printf("Couldn't create sync pipe: %s", errmsg);
- g_free(errmsg);
+ *msg = g_strdup_printf("Couldn't create sync pipe: %s",
+ win32strerror(GetLastError()));
return -1;
}
@@ -706,9 +699,8 @@ sync_pipe_open_command(char* const argv[], int *data_read_fd,
/* (increase this value if you have trouble while fast capture file switches) */
if (! CreatePipe(&data_pipe[PIPE_READ], &data_pipe[PIPE_WRITE], &sa, 5120)) {
/* Couldn't create the message pipe between parent and child. */
- errmsg = win32strerror(GetLastError());
- *msg = g_strdup_printf("Couldn't create data pipe: %s", errmsg);
- g_free(errmsg);
+ *msg = g_strdup_printf("Couldn't create data pipe: %s",
+ win32strerror(GetLastError()));
ws_close(*message_read_fd); /* Should close sync_pipe[PIPE_READ] */
CloseHandle(sync_pipe[PIPE_WRITE]);
return -1;
@@ -760,10 +752,8 @@ sync_pipe_open_command(char* const argv[], int *data_read_fd,
/* call dumpcap */
if(!win32_create_process(argv[0], args->str, NULL, NULL, TRUE,
CREATE_NEW_CONSOLE, NULL, NULL, &si, &pi)) {
- errmsg = win32strerror(GetLastError());
*msg = g_strdup_printf("Couldn't run %s in child process: %s",
- args->str, errmsg);
- g_free(errmsg);
+ args->str, win32strerror(GetLastError()));
ws_close(*data_read_fd); /* Should close data_pipe[PIPE_READ] */
CloseHandle(data_pipe[PIPE_WRITE]);
ws_close(*message_read_fd); /* Should close sync_pipe[PIPE_READ] */