Commit 35d826aa300d82dc25689f39ee0e6b67b4a3c81c

Authored by perry.werneck@gmail.com
1 parent a31b6734

Corrigindo segfaults aleatorios em windows 64

Showing 2 changed files with 13 additions and 7 deletions   Show diff stats
@@ -264,6 +264,7 @@ void update_model_info(H3270 *session, int model, int cols, int rows) @@ -264,6 +264,7 @@ void update_model_info(H3270 *session, int model, int cols, int rows)
264 /* Update the model name. */ 264 /* Update the model name. */
265 (void) sprintf(session->model_name, "327%c-%d%s",session->m3279 ? '9' : '8',session->model_num,session->extended ? "-E" : ""); 265 (void) sprintf(session->model_name, "327%c-%d%s",session->m3279 ? '9' : '8',session->model_num,session->extended ? "-E" : "");
266 266
  267 + trace("%s: %p",__FUNCTION__,session->update_model);
267 session->update_model(session, session->model_name,session->model_num,rows,cols); 268 session->update_model(session, session->model_name,session->model_num,rows,cols);
268 } 269 }
269 270
@@ -634,7 +635,12 @@ void Error(H3270 *session, const char *fmt, ...) @@ -634,7 +635,12 @@ void Error(H3270 *session, const char *fmt, ...)
634 trace("%s: title=%s fmt=%s",__FUNCTION__,"3270 Error",fmt); 635 trace("%s: title=%s fmt=%s",__FUNCTION__,"3270 Error",fmt);
635 636
636 va_start(arg_ptr, fmt); 637 va_start(arg_ptr, fmt);
637 - popup_handler(session,session->widget,LIB3270_NOTIFY_ERROR, _( "3270 Error" ),NULL,fmt,arg_ptr); 638 +
  639 + if(session && session->sz == sizeof(H3270))
  640 + popup_handler(session,session->widget,LIB3270_NOTIFY_ERROR, _( "3270 Error" ),NULL,fmt,arg_ptr);
  641 + else
  642 + popup_handler(NULL,NULL,LIB3270_NOTIFY_ERROR, _( "3270 Error" ),NULL,fmt,arg_ptr);
  643 +
638 va_end(arg_ptr); 644 va_end(arg_ptr);
639 645
640 } 646 }
@@ -167,8 +167,8 @@ char * xs_vsprintf(const char *fmt, va_list args) @@ -167,8 +167,8 @@ char * xs_vsprintf(const char *fmt, va_list args)
167 char *r; 167 char *r;
168 #if defined(HAVE_VASPRINTF) /*[*/ 168 #if defined(HAVE_VASPRINTF) /*[*/
169 (void) vasprintf(&r, fmt, args); 169 (void) vasprintf(&r, fmt, args);
170 - if (r == CN)  
171 - Error("Out of memory"); 170 + if(!r)
  171 + Error(NULL,"Out of memory in %s",__FUNCTION__);
172 return r; 172 return r;
173 #else /*][*/ 173 #else /*][*/
174 char buf[16384]; 174 char buf[16384];
@@ -1098,7 +1098,7 @@ LIB3270_EXPORT void * lib3270_realloc(void *p, int len) @@ -1098,7 +1098,7 @@ LIB3270_EXPORT void * lib3270_realloc(void *p, int len)
1098 { 1098 {
1099 p = realloc(p, len); 1099 p = realloc(p, len);
1100 if(!p) 1100 if(!p)
1101 - Error(NULL,"Out of memory"); 1101 + Error(NULL,"Out of memory in %s",__FUNCTION__);
1102 return p; 1102 return p;
1103 } 1103 }
1104 1104
@@ -1114,7 +1114,7 @@ LIB3270_EXPORT void * lib3270_calloc(int elsize, int nelem, void *ptr) @@ -1114,7 +1114,7 @@ LIB3270_EXPORT void * lib3270_calloc(int elsize, int nelem, void *ptr)
1114 if(ptr) 1114 if(ptr)
1115 memset(ptr,0,sz); 1115 memset(ptr,0,sz);
1116 else 1116 else
1117 - Error(NULL,"Out of memory"); 1117 + Error(NULL,"Out of memory in %s",__FUNCTION__);
1118 1118
1119 return ptr; 1119 return ptr;
1120 } 1120 }
@@ -1127,7 +1127,7 @@ LIB3270_EXPORT void * lib3270_malloc(int len) @@ -1127,7 +1127,7 @@ LIB3270_EXPORT void * lib3270_malloc(int len)
1127 r = malloc(len); 1127 r = malloc(len);
1128 if (r == (char *)NULL) 1128 if (r == (char *)NULL)
1129 { 1129 {
1130 - Error(NULL,"Out of memory"); 1130 + Error(NULL,"Out of memory in %s",__FUNCTION__);
1131 return 0; 1131 return 0;
1132 } 1132 }
1133 1133
@@ -1142,7 +1142,7 @@ void * Calloc(size_t nelem, size_t elsize) @@ -1142,7 +1142,7 @@ void * Calloc(size_t nelem, size_t elsize)
1142 char * r = malloc(sz); 1142 char * r = malloc(sz);
1143 1143
1144 if(!r) 1144 if(!r)
1145 - Error(NULL,"Out of memory"); 1145 + Error(NULL,"Out of memory in %s",__FUNCTION__);
1146 1146
1147 memset(r, 0, sz); 1147 memset(r, 0, sz);
1148 return r; 1148 return r;