diff options
Diffstat (limited to 'extcap.c')
-rw-r--r-- | extcap.c | 33 |
1 files changed, 18 insertions, 15 deletions
@@ -751,26 +751,29 @@ void extcap_if_cleanup(capture_options * capture_opts, gchar ** errormsg) { } #endif - if ( userdata->extcap_stderr != NULL ) - overwrite_exitcode = TRUE; - - if ( overwrite_exitcode || userdata->exitcode != 0 ) + if ( userdata ) { - if ( userdata->extcap_stderr != 0 ) + if ( userdata->extcap_stderr != NULL ) + overwrite_exitcode = TRUE; + + if ( overwrite_exitcode || userdata->exitcode != 0 ) { - if ( *errormsg == NULL ) - *errormsg = g_strdup_printf("Error by extcap pipe: %s", userdata->extcap_stderr); - else + if ( userdata->extcap_stderr != 0 ) { - gchar * temp = g_strconcat ( *errormsg, "\nError by extcap pipe: " ,userdata->extcap_stderr, NULL ); - g_free(*errormsg); - *errormsg = temp; + if ( *errormsg == NULL ) + *errormsg = g_strdup_printf("Error by extcap pipe: %s", userdata->extcap_stderr); + else + { + gchar * temp = g_strconcat ( *errormsg, "\nError by extcap pipe: " ,userdata->extcap_stderr, NULL ); + g_free(*errormsg); + *errormsg = temp; + } + g_free (userdata->extcap_stderr ); } - g_free (userdata->extcap_stderr ); - } - userdata->extcap_stderr = NULL; - userdata->exitcode = 0; + userdata->extcap_stderr = NULL; + userdata->exitcode = 0; + } } if (interface_opts.extcap_child_watch > 0) |