Commit 2639be97d6f2ddd6dfa29e51c8fee72539a3ea54

Authored by Perry Werneck
Committed by GitHub
2 parents b4947287 96c0e360
Exists in master and in 1 other branch develop

Merge pull request #35 from PerryWerneck/develop

Fixing codeql warnings.
@@ -95,7 +95,7 @@ BUILDDIR=@BUILDDIR@ @@ -95,7 +95,7 @@ BUILDDIR=@BUILDDIR@
95 95
96 POTDIR=$(BUILDDIR)/.pot 96 POTDIR=$(BUILDDIR)/.pot
97 97
98 -OBJDIR=$(BUILDDIR)/.obj 98 +OBJDIR=$(BUILDDIR)/.obj/@OSNAME@
99 OBJDBG=$(OBJDIR)/Debug 99 OBJDBG=$(OBJDIR)/Debug
100 OBJRLS=$(OBJDIR)/Release 100 OBJRLS=$(OBJDIR)/Release
101 101
@@ -525,7 +525,9 @@ clean: \ @@ -525,7 +525,9 @@ clean: \
525 cleanDebug \ 525 cleanDebug \
526 cleanRelease 526 cleanRelease
527 527
528 - @rm -fr $(BUILDDIR)/.tmp/$(LIBNAME) 528 + @rm -fr $(BUILDDIR)/.obj
  529 + @rm -fr $(BUILDDIR)/.bin
  530 + @rm -fr $(BUILDDIR)/.tmp
529 @rm -fr $(POTDIR)/$(LIBNAME) 531 @rm -fr $(POTDIR)/$(LIBNAME)
530 @rm -f locale/*.pot 532 @rm -f locale/*.pot
531 533
src/core/ansi.c
@@ -1729,7 +1729,7 @@ ansi_send_pf(H3270 *hSession, int nn) { @@ -1729,7 +1729,7 @@ ansi_send_pf(H3270 *hSession, int nn) {
1729 1729
1730 if (nn < 1 || ((size_t) nn) > sizeof(code)/sizeof(code[0])) 1730 if (nn < 1 || ((size_t) nn) > sizeof(code)/sizeof(code[0]))
1731 return; 1731 return;
1732 - (void) sprintf(fn_buf, ", "\033[%d~", code[nn-1]);33[%d~", code[nn-1]); 1732 + (void) snprintf(fn_buf, sizeof(fn_buf), ", "\033[%d~", code[nn-1]);33[%d~", code[nn-1]);
1733 net_sends(hSession,fn_buf); 1733 net_sends(hSession,fn_buf);
1734 } 1734 }
1735 1735
src/core/cursor.c
@@ -90,7 +90,8 @@ LIB3270_EXPORT int lib3270_move_cursor(H3270 *hSession, LIB3270_DIRECTION dir, u @@ -90,7 +90,8 @@ LIB3270_EXPORT int lib3270_move_cursor(H3270 *hSession, LIB3270_DIRECTION dir, u
90 status_reset(hSession); 90 status_reset(hSession);
91 } else { 91 } else {
92 struct ta *ta = new_ta(hSession, TA_TYPE_CURSOR_MOVE); 92 struct ta *ta = new_ta(hSession, TA_TYPE_CURSOR_MOVE);
93 - 93 + if(!ta)
  94 + return -1;
94 ta->args.move.direction = dir; 95 ta->args.move.direction = dir;
95 ta->args.move.fn = lib3270_move_cursor; 96 ta->args.move.fn = lib3270_move_cursor;
96 ta->args.move.sel = sel; 97 ta->args.move.sel = sel;
src/core/ft/ft.c
@@ -474,7 +474,7 @@ LIB3270_EXPORT int lib3270_ft_start(H3270 *hSession) { @@ -474,7 +474,7 @@ LIB3270_EXPORT int lib3270_ft_start(H3270 *hSession) {
474 // Erase the line and enter the command. 474 // Erase the line and enter the command.
475 flen = kybd_prime(ft->host); 475 flen = kybd_prime(ft->host);
476 if (!flen || flen < strlen(buffer) - 1) { 476 if (!flen || flen < strlen(buffer) - 1) {
477 - lib3270_write_log(ft->host, "Unable to send command \"%s\" (flen=%d szBuffer=%d)",buffer,flen,strlen(buffer)); 477 + lib3270_write_log(ft->host, "ft", "Unable to send command \"%s\" (flen=%d szBuffer=%ld)",buffer,flen,strlen(buffer));
478 ft_failed(ft,_( "Unable to send file-transfer request" )); 478 ft_failed(ft,_( "Unable to send file-transfer request" ));
479 return errno = EINVAL; 479 return errno = EINVAL;
480 } 480 }
src/core/ft/ft_dft.c
@@ -383,7 +383,7 @@ static void dft_get_request(H3270 *hSession) { @@ -383,7 +383,7 @@ static void dft_get_request(H3270 *hSession) {
383 /* Binary read. */ 383 /* Binary read. */
384 numread = fread(bufptr, 1, numbytes, ft->local_file); 384 numread = fread(bufptr, 1, numbytes, ft->local_file);
385 if (numread <= 0) { 385 if (numread <= 0) {
386 - lib3270_write_log(hSession,"Error %s reading source file (rc=%d)",strerror(errno),errno); 386 + lib3270_write_log(hSession,"ft","Error %s reading source file (rc=%d)",strerror(errno),errno);
387 break; 387 break;
388 } 388 }
389 389
src/core/keyboard/kybd.c
@@ -128,14 +128,16 @@ static const char dxl[] = &quot;0123456789abcdef&quot;; @@ -128,14 +128,16 @@ static const char dxl[] = &quot;0123456789abcdef&quot;;
128 * Check for typeahead availability and create a new TA structure. 128 * Check for typeahead availability and create a new TA structure.
129 * 129 *
130 * @return new typeahead struct or NULL if it's not available. 130 * @return new typeahead struct or NULL if it's not available.
  131 + * @retval NULL Host is not connected or malloc error.
131 */ 132 */
132 struct ta * new_ta(H3270 *hSession, enum _ta_type type) { 133 struct ta * new_ta(H3270 *hSession, enum _ta_type type) {
133 - struct ta *ta; 134 + struct ta *ta = NULL;
134 135
135 // If no connection, forget it. 136 // If no connection, forget it.
136 if (!lib3270_is_connected(hSession)) { 137 if (!lib3270_is_connected(hSession)) {
137 lib3270_ring_bell(hSession); 138 lib3270_ring_bell(hSession);
138 lib3270_write_event_trace(hSession,"typeahead action dropped (not connected)\n"); 139 lib3270_write_event_trace(hSession,"typeahead action dropped (not connected)\n");
  140 + errno = ENOTCONN;
139 return NULL; 141 return NULL;
140 } 142 }
141 143
@@ -143,6 +145,7 @@ struct ta * new_ta(H3270 *hSession, enum _ta_type type) { @@ -143,6 +145,7 @@ struct ta * new_ta(H3270 *hSession, enum _ta_type type) {
143 if (hSession->kybdlock & KL_OERR_MASK) { 145 if (hSession->kybdlock & KL_OERR_MASK) {
144 lib3270_ring_bell(hSession); 146 lib3270_ring_bell(hSession);
145 lib3270_write_event_trace(hSession,"typeahead action dropped (operator error)\n"); 147 lib3270_write_event_trace(hSession,"typeahead action dropped (operator error)\n");
  148 + errno = EINVAL;
146 return NULL; 149 return NULL;
147 } 150 }
148 151
@@ -150,6 +153,7 @@ struct ta * new_ta(H3270 *hSession, enum _ta_type type) { @@ -150,6 +153,7 @@ struct ta * new_ta(H3270 *hSession, enum _ta_type type) {
150 if (hSession->kybdlock & KL_SCROLLED) { 153 if (hSession->kybdlock & KL_SCROLLED) {
151 lib3270_ring_bell(hSession); 154 lib3270_ring_bell(hSession);
152 lib3270_write_event_trace(hSession,"typeahead action dropped (scrolled)\n"); 155 lib3270_write_event_trace(hSession,"typeahead action dropped (scrolled)\n");
  156 + errno = EINVAL;
153 return NULL; 157 return NULL;
154 } 158 }
155 159
@@ -157,6 +161,7 @@ struct ta * new_ta(H3270 *hSession, enum _ta_type type) { @@ -157,6 +161,7 @@ struct ta * new_ta(H3270 *hSession, enum _ta_type type) {
157 if (!hSession->typeahead) { 161 if (!hSession->typeahead) {
158 lib3270_ring_bell(hSession); 162 lib3270_ring_bell(hSession);
159 lib3270_write_event_trace(hSession,"typeahead action dropped (no typeahead)\n"); 163 lib3270_write_event_trace(hSession,"typeahead action dropped (no typeahead)\n");
  164 + errno = EINVAL;
160 return NULL; 165 return NULL;
161 } 166 }
162 167
src/core/see.c
@@ -180,47 +180,47 @@ const char * see_attr(unsigned char fa) { @@ -180,47 +180,47 @@ const char * see_attr(unsigned char fa) {
180 buf[0] = '\0'; 180 buf[0] = '\0';
181 181
182 if (fa & FA_PROTECT) { 182 if (fa & FA_PROTECT) {
183 - (void) strcat(buf, paren);  
184 - (void) strcat(buf, "protected"); 183 + (void) strncat(buf, paren, 255);
  184 + (void) strncat(buf, "protected", 255);
185 paren = ","; 185 paren = ",";
186 if (fa & FA_NUMERIC) { 186 if (fa & FA_NUMERIC) {
187 - (void) strcat(buf, paren);  
188 - (void) strcat(buf, "skip"); 187 + (void) strncat(buf, paren, 255);
  188 + (void) strncat(buf, "skip", 255);
189 paren = ","; 189 paren = ",";
190 } 190 }
191 } else if (fa & FA_NUMERIC) { 191 } else if (fa & FA_NUMERIC) {
192 - (void) strcat(buf, paren);  
193 - (void) strcat(buf, "numeric"); 192 + (void) strncat(buf, paren, 255);
  193 + (void) strncat(buf, "numeric", 255);
194 paren = ","; 194 paren = ",";
195 } 195 }
196 switch (fa & FA_INTENSITY) { 196 switch (fa & FA_INTENSITY) {
197 case FA_INT_NORM_NSEL: 197 case FA_INT_NORM_NSEL:
198 break; 198 break;
199 case FA_INT_NORM_SEL: 199 case FA_INT_NORM_SEL:
200 - (void) strcat(buf, paren);  
201 - (void) strcat(buf, "detectable"); 200 + (void) strncat(buf, paren, 255);
  201 + (void) strncat(buf, "detectable", 255);
202 paren = ","; 202 paren = ",";
203 break; 203 break;
204 case FA_INT_HIGH_SEL: 204 case FA_INT_HIGH_SEL:
205 - (void) strcat(buf, paren);  
206 - (void) strcat(buf, "intensified"); 205 + (void) strncat(buf, paren, 255);
  206 + (void) strncat(buf, "intensified", 255);
207 paren = ","; 207 paren = ",";
208 break; 208 break;
209 case FA_INT_ZERO_NSEL: 209 case FA_INT_ZERO_NSEL:
210 - (void) strcat(buf, paren);  
211 - (void) strcat(buf, "nondisplay"); 210 + (void) strncat(buf, paren, 255);
  211 + (void) strncat(buf, "nondisplay", 255);
212 paren = ","; 212 paren = ",";
213 break; 213 break;
214 } 214 }
215 if (fa & FA_MODIFY) { 215 if (fa & FA_MODIFY) {
216 - (void) strcat(buf, paren);  
217 - (void) strcat(buf, "modified"); 216 + (void) strncat(buf, paren, 255);
  217 + (void) strncat(buf, "modified", 255);
218 paren = ","; 218 paren = ",";
219 } 219 }
220 if (strcmp(paren, "(")) 220 if (strcmp(paren, "("))
221 - (void) strcat(buf, ")"); 221 + (void) strncat(buf, ")", 255);
222 else 222 else
223 - (void) strcpy(buf, "(default)"); 223 + (void) strncpy(buf, "(default)", 255);
224 224
225 return buf; 225 return buf;
226 } 226 }
@@ -293,24 +293,24 @@ static const char * see_validation(unsigned char setting) { @@ -293,24 +293,24 @@ static const char * see_validation(unsigned char setting) {
293 293
294 (void) strcpy(buf, ""); 294 (void) strcpy(buf, "");
295 if (setting & XAV_FILL) { 295 if (setting & XAV_FILL) {
296 - (void) strcat(buf, paren);  
297 - (void) strcat(buf, "fill"); 296 + (void) strncat(buf, paren, 63);
  297 + (void) strncat(buf, "fill", 63);
298 paren = ","; 298 paren = ",";
299 } 299 }
300 if (setting & XAV_ENTRY) { 300 if (setting & XAV_ENTRY) {
301 - (void) strcat(buf, paren);  
302 - (void) strcat(buf, "entry"); 301 + (void) strncat(buf, paren, 63);
  302 + (void) strncat(buf, "entry", 63);
303 paren = ","; 303 paren = ",";
304 } 304 }
305 if (setting & XAV_TRIGGER) { 305 if (setting & XAV_TRIGGER) {
306 - (void) strcat(buf, paren);  
307 - (void) strcat(buf, "trigger"); 306 + (void) strncat(buf, paren, 63);
  307 + (void) strncat(buf, "trigger", 63);
308 paren = ","; 308 paren = ",";
309 } 309 }
310 if (strcmp(paren, "(")) 310 if (strcmp(paren, "("))
311 - (void) strcat(buf, ")"); 311 + (void) strncat(buf, ")", 63);
312 else 312 else
313 - (void) strcpy(buf, "(none)"); 313 + (void) strncpy(buf, "(none)", 63);
314 return buf; 314 return buf;
315 } 315 }
316 316
@@ -320,29 +320,29 @@ static const char * see_outline(unsigned char setting) { @@ -320,29 +320,29 @@ static const char * see_outline(unsigned char setting) {
320 320
321 (void) strcpy(buf, ""); 321 (void) strcpy(buf, "");
322 if (setting & XAO_UNDERLINE) { 322 if (setting & XAO_UNDERLINE) {
323 - (void) strcat(buf, paren);  
324 - (void) strcat(buf, "underline"); 323 + (void) strncat(buf, paren, 63);
  324 + (void) strncat(buf, "underline", 63);
325 paren = ","; 325 paren = ",";
326 } 326 }
327 if (setting & XAO_RIGHT) { 327 if (setting & XAO_RIGHT) {
328 - (void) strcat(buf, paren);  
329 - (void) strcat(buf, "right"); 328 + (void) strncat(buf, paren, 63);
  329 + (void) strncat(buf, "right", 63);
330 paren = ","; 330 paren = ",";
331 } 331 }
332 if (setting & XAO_OVERLINE) { 332 if (setting & XAO_OVERLINE) {
333 - (void) strcat(buf, paren);  
334 - (void) strcat(buf, "overline"); 333 + (void) strncat(buf, paren, 63);
  334 + (void) strncat(buf, "overline", 63);
335 paren = ","; 335 paren = ",";
336 } 336 }
337 if (setting & XAO_LEFT) { 337 if (setting & XAO_LEFT) {
338 - (void) strcat(buf, paren);  
339 - (void) strcat(buf, "left"); 338 + (void) strncat(buf, paren, 63);
  339 + (void) strncat(buf, "left", 63);
340 paren = ","; 340 paren = ",";
341 } 341 }
342 if (strcmp(paren, "(")) 342 if (strcmp(paren, "("))
343 - (void) strcat(buf, ")"); 343 + (void) strncat(buf, ")", 63);
344 else 344 else
345 - (void) strcpy(buf, "(none)"); 345 + (void) strncpy(buf, "(none)", 63);
346 return buf; 346 return buf;
347 } 347 }
348 348
src/mkfb/mkfb.c
@@ -509,11 +509,18 @@ main(int argc, char *argv[]) { @@ -509,11 +509,18 @@ main(int argc, char *argv[]) {
509 509
510 /* Open the output file. */ 510 /* Open the output file. */
511 if (argc == 3) { 511 if (argc == 3) {
512 - o = fopen(argv[2], "w"); 512 + int fd = creat(argv[2], S_IWUSR | S_IRUSR);
  513 + if(fd < 0) {
  514 + perror(argv[2]);
  515 + exit(1);
  516 + }
  517 +
  518 + o = fdopen(fd,"w");
513 if (o == NULL) { 519 if (o == NULL) {
514 perror(argv[2]); 520 perror(argv[2]);
515 exit(1); 521 exit(1);
516 } 522 }
  523 +
517 } else 524 } else
518 o = stdout; 525 o = stdout;
519 526