Commit 6b1178c20fe3c023e6d40609a63fd908ae8a9bd1

Authored by Perry Werneck
1 parent 40c509b9

Fixing segfault on lib3270.

src/lib3270/linux/connect.c
... ... @@ -198,7 +198,13 @@ static void net_connected(H3270 *hSession, int fd unused, LIB3270_IO_FLAG flag u
198 198 if(!(hSession->host.current && hSession->host.srvc))
199 199 {
200 200 // No host info, try the default one.
201   - lib3270_set_url(hSession,NULL);
  201 + if(lib3270_set_url(hSession,NULL))
  202 + {
  203 + int err = errno;
  204 + lib3270_trace_event(hSession,"Can't set default URL (%s)\n",strerror(err));
  205 + return errno = err;
  206 + }
  207 +
202 208 if(!(hSession->host.current && hSession->host.srvc))
203 209 {
204 210 return errno = ENOENT;
... ...
src/lib3270/properties.c
... ... @@ -66,21 +66,21 @@
66 66 static const LIB3270_INT_PROPERTY properties[] = {
67 67 {
68 68 "ready", // Property name.
69   - N_( "" ), // Property description.
  69 + N_( "Is terminal ready" ), // Property description.
70 70 lib3270_is_ready, // Get value.
71 71 NULL // Set value.
72 72 },
73 73  
74 74 {
75 75 "connected", // Property name.
76   - N_( "" ), // Property description.
  76 + N_( "Is terminal connected" ), // Property description.
77 77 lib3270_is_connected, // Get value.
78 78 NULL // Set value.
79 79 },
80 80  
81 81 {
82 82 "secure", // Property name.
83   - N_( "" ), // Property description.
  83 + N_( "Is connection secure" ), // Property description.
84 84 lib3270_is_secure, // Get value.
85 85 NULL // Set value.
86 86 },
... ... @@ -101,28 +101,28 @@
101 101  
102 102 {
103 103 "pconnected", // Property name.
104   - N_( "" ), // Property description.
  104 + "", // Property description.
105 105 lib3270_pconnected, // Get value.
106 106 NULL // Set value.
107 107 },
108 108  
109 109 {
110   - "half_connected", // Property name.
111   - N_( "" ), // Property description.
112   - lib3270_half_connected, // Get value.
113   - NULL // Set value.
  110 + "half_connected", // Property name.
  111 + "", // Property description.
  112 + lib3270_half_connected, // Get value.
  113 + NULL // Set value.
114 114 },
115 115  
116 116 {
117 117 "neither", // Property name.
118   - N_( "" ), // Property description.
  118 + "", // Property description.
119 119 lib3270_in_neither, // Get value.
120 120 NULL // Set value.
121 121 },
122 122  
123 123 {
124 124 "ansi", // Property name.
125   - N_( "" ), // Property description.
  125 + "", // Property description.
126 126 lib3270_in_ansi, // Get value.
127 127 NULL // Set value.
128 128 },
... ... @@ -136,14 +136,14 @@
136 136  
137 137 {
138 138 "sscp", // Property name.
139   - N_( "" ), // Property description.
  139 + "", // Property description.
140 140 lib3270_in_sscp, // Get value.
141 141 NULL // Set value.
142 142 },
143 143  
144 144 {
145 145 "tn3270e", // Property name.
146   - N_( "" ), // Property description.
  146 + "", // Property description.
147 147 lib3270_in_tn3270e, // Get value.
148 148 NULL // Set value.
149 149 },
... ... @@ -179,7 +179,7 @@
179 179 /*
180 180 {
181 181 "", // Property name.
182   - N_( "" ), // Property description.
  182 + "", // Property description.
183 183 NULL, // Get value.
184 184 NULL // Set value.
185 185 },
... ... @@ -268,7 +268,7 @@
268 268 /*
269 269 {
270 270 "", // Property name.
271   - N_( "" ), // Property description.
  271 + "", // Property description.
272 272 NULL, // Get value.
273 273 NULL // Set value.
274 274 },
... ... @@ -444,7 +444,7 @@
444 444 /*
445 445 {
446 446 "", // Property name.
447   - N_( "" ), // Property description.
  447 + "", // Property description.
448 448 , // Get value.
449 449 NULL // Set value.
450 450 },
... ...
src/lib3270/testprogram/testprogram.c
... ... @@ -73,13 +73,14 @@ int main(int argc, char *argv[])
73 73 lib3270_set_toggle(h,LIB3270_TOGGLE_SSL_TRACE,1);
74 74  
75 75 rc = lib3270_reconnect(h,120);
76   - printf("\nConnect %s exits with rc=%d\n",lib3270_get_url(h),rc);
  76 + printf("\nConnect exits with rc=%d\n",rc);
77 77  
78   - lib3270_wait_for_ready(h,10);
79   -
80   - lib3270_enter(h);
81   -
82   - lib3270_wait_for_ready(h,10);
  78 + if(!rc)
  79 + {
  80 + lib3270_wait_for_ready(h,10);
  81 + lib3270_enter(h);
  82 + lib3270_wait_for_ready(h,10);
  83 + }
83 84  
84 85 lib3270_session_free(h);
85 86  
... ...