Commit c53905e563b685be905e6bfe5d31324623373590

Authored by Perry Werneck
1 parent ac265fb1
Exists in master and in 1 other branch develop

Fixing segfault on host selection dialog.

Showing 1 changed file with 30 additions and 23 deletions   Show diff stats
src/dialogs/hostselect.c
... ... @@ -242,37 +242,44 @@ LIB3270_EXPORT void v3270_host_select_set_session(GtkWidget *w, GtkWidget *sessi
242 242 V3270HostSelectWidget *widget = GTK_V3270HostSelectWidget(w);
243 243 widget->hSession = v3270_get_session(session);
244 244  
245   - g_autofree gchar * url = g_strdup(lib3270_get_url(widget->hSession));
246   - debug("URL=[%s]",url);
  245 + const gchar * u = lib3270_get_url(widget->hSession);
247 246  
248   - gchar *hostname = strstr(url,"://");
249   - if(!hostname)
250   - {
251   - g_message("Invalid URL: \"%s\" (no scheme)",url);
252   - }
253   - else
254   - {
255   - hostname += 3;
  247 + if(u)
  248 + {
256 249  
257   - gchar *srvcname = strchr(hostname,':');
  250 + g_autofree gchar * url = g_strdup(u);
  251 + debug("URL=[%s]",url);
258 252  
259   - if(srvcname)
260   - {
261   - *(srvcname++) = 0;
262   - }
263   - else
264   - {
265   - srvcname = "telnet";
266   - }
  253 + gchar *hostname = strstr(url,"://");
  254 + if(!hostname)
  255 + {
  256 + g_message("Invalid URL: \"%s\" (no scheme)",url);
  257 + }
  258 + else
  259 + {
  260 + hostname += 3;
267 261  
268   - gtk_entry_set_text(widget->input.entry[ENTRY_HOSTNAME],hostname);
269   - gtk_entry_set_text(widget->input.entry[ENTRY_SRVCNAME],srvcname);
  262 + gchar *srvcname = strchr(hostname,':');
270 263  
271   - }
  264 + if(srvcname)
  265 + {
  266 + *(srvcname++) = 0;
  267 + }
  268 + else
  269 + {
  270 + srvcname = "telnet";
  271 + }
  272 +
  273 + gtk_entry_set_text(widget->input.entry[ENTRY_HOSTNAME],hostname);
  274 + gtk_entry_set_text(widget->input.entry[ENTRY_SRVCNAME],srvcname);
  275 +
  276 + }
  277 +
  278 + }
272 279  
273 280 LIB3270_HOST_TYPE type = lib3270_get_host_type(widget->hSession);
274 281  
275   - gtk_toggle_button_set_active(widget->input.ssl,g_str_has_prefix(url,"tn3270s://") != 0);
  282 + gtk_toggle_button_set_active(widget->input.ssl,lib3270_get_secure_host(widget->hSession) != 0);
276 283  
277 284 // Set host type
278 285 {
... ...