Commit c29be795c254d3c0b83a042a30092abe65c0d925
1 parent
e3e52c8f
Exists in
master
and in
2 other branches
Fixing code scanning alerts.
Showing
4 changed files
with
29 additions
and
14 deletions
Show diff stats
src/core/ctlr.c
| ... | ... | @@ -2364,8 +2364,13 @@ void ctlr_clear(H3270 *session, Boolean can_snap) |
| 2364 | 2364 | |
| 2365 | 2365 | #endif |
| 2366 | 2366 | |
| 2367 | - /* Clear the screen. */ | |
| 2368 | - (void) memset((char *)session->ea_buf, 0, session->view.rows * session->view.cols * sizeof(struct lib3270_ea)); | |
| 2367 | + // Clear the screen. | |
| 2368 | + (void) memset( | |
| 2369 | + (char *)session->ea_buf, | |
| 2370 | + 0, | |
| 2371 | + ((size_t)session->view.rows) * ((size_t) session->view.cols) * sizeof(struct lib3270_ea) | |
| 2372 | + ); | |
| 2373 | + | |
| 2369 | 2374 | cursor_move(session,0); |
| 2370 | 2375 | session->buffer_addr = 0; |
| 2371 | 2376 | ... | ... |
src/core/rpq.c
| ... | ... | @@ -376,9 +376,7 @@ static Boolean select_rpq_terms(H3270 *hSession) |
| 376 | 376 | return False; |
| 377 | 377 | } |
| 378 | 378 | |
| 379 | -/** | |
| 380 | - * @brief Utility function used by the RPQNAMES query reply. | |
| 381 | - */ | |
| 379 | +/// @brief Utility function used by the RPQNAMES query reply. | |
| 382 | 380 | static int get_rpq_timezone(H3270 *hSession) |
| 383 | 381 | { |
| 384 | 382 | /* |
| ... | ... | @@ -394,7 +392,7 @@ static int get_rpq_timezone(H3270 *hSession) |
| 394 | 392 | */ |
| 395 | 393 | time_t here; |
| 396 | 394 | struct tm here_tm; |
| 397 | - struct tm *utc_tm; | |
| 395 | + struct tm utc_tm; | |
| 398 | 396 | double delta; |
| 399 | 397 | char *p1, *p2; |
| 400 | 398 | struct rpq_keyword *kw; |
| ... | ... | @@ -440,22 +438,31 @@ static int get_rpq_timezone(H3270 *hSession) |
| 440 | 438 | } |
| 441 | 439 | |
| 442 | 440 | |
| 443 | -// memcpy(&here_tm, localtime(&here), sizeof(struct tm)); | |
| 444 | - localtime_r(&here, &here_tm); | |
| 441 | + localtime_r(&here,&here_tm); | |
| 442 | + | |
| 443 | + if(gmtime_r(&here,&utc_tm) == NULL) | |
| 444 | + { | |
| 445 | + rpq_warning(hSession, _("RPQ: Unable to determine workstation UTC time")); | |
| 446 | + return 2; | |
| 447 | + } | |
| 448 | + | |
| 449 | + /* | |
| 450 | + memcpy(&here_tm, localtime(&here), sizeof(struct tm)); | |
| 445 | 451 | |
| 446 | 452 | if ((utc_tm = gmtime(&here)) == NULL) |
| 447 | 453 | { |
| 448 | 454 | rpq_warning(hSession, _("RPQ: Unable to determine workstation UTC time")); |
| 449 | 455 | return 2; |
| 450 | 456 | } |
| 457 | + */ | |
| 451 | 458 | |
| 452 | 459 | /* |
| 453 | 460 | * Do not take Daylight Saving Time into account. |
| 454 | 461 | * We just want the "raw" time difference. |
| 455 | 462 | */ |
| 456 | 463 | here_tm.tm_isdst = 0; |
| 457 | - utc_tm->tm_isdst = 0; | |
| 458 | - delta = difftime(mktime(&here_tm), mktime(utc_tm)) / 60L; | |
| 464 | + utc_tm.tm_isdst = 0; | |
| 465 | + delta = difftime(mktime(&here_tm), mktime(&utc_tm)) / 60L; | |
| 459 | 466 | } |
| 460 | 467 | |
| 461 | 468 | // sanity check: difference cannot exceed +/- 12 hours | ... | ... |
src/core/telnet.c
| ... | ... | @@ -2152,10 +2152,13 @@ void trace_netdata(H3270 *hSession, char direction, unsigned const char *buf, in |
| 2152 | 2152 | int offset; |
| 2153 | 2153 | int col = 0; |
| 2154 | 2154 | |
| 2155 | - time_t ltime; | |
| 2155 | + { | |
| 2156 | + time_t ltime; | |
| 2157 | + struct tm tm; | |
| 2158 | + time(<ime); | |
| 2159 | + strftime(l1, 81, "%x %X", localtime_r(<ime,&tm)); | |
| 2160 | + } | |
| 2156 | 2161 | |
| 2157 | - time(<ime); | |
| 2158 | - strftime(l1, 81, "%x %X", localtime(<ime)); | |
| 2159 | 2162 | lib3270_write_nettrace(hSession,"%c %s %s data len=%d\n\n",direction,l1,direction == '>' ? "SEND" : "RECV", len); |
| 2160 | 2163 | |
| 2161 | 2164 | for (offset = 0; offset < len; offset++) | ... | ... |
src/core/util.c
| ... | ... | @@ -183,7 +183,7 @@ LIB3270_EXPORT void * lib3270_realloc(void *p, int len) |
| 183 | 183 | |
| 184 | 184 | LIB3270_EXPORT void * lib3270_calloc(int elsize, int nelem, void *ptr) |
| 185 | 185 | { |
| 186 | - size_t sz = nelem * elsize; | |
| 186 | + size_t sz = ((size_t) nelem) * ((size_t) elsize); | |
| 187 | 187 | |
| 188 | 188 | if(ptr) |
| 189 | 189 | ptr = realloc(ptr,sz); | ... | ... |