|
40 | 40 | #define NO_IMPORT_ARRAY |
41 | 41 | #endif |
42 | 42 | #include "stdio.h" |
| 43 | +#include <string.h> |
43 | 44 | #define NPY_NO_DEPRECATED_API NPY_1_7_API_VERSION |
44 | 45 | #include <numpy/arrayobject.h> |
45 | 46 | %} |
@@ -457,11 +458,11 @@ void free_cap(PyObject * cap) |
457 | 458 | { |
458 | 459 | for (i = 0; i < n-1; i++) |
459 | 460 | { |
460 | | - sprintf(s, "%d, ", exact_dimensions[i]); |
461 | | - strcat(dims_str,s); |
| 461 | + snprintf(s, sizeof(s), "%d, ", exact_dimensions[i]); |
| 462 | + strncat(dims_str, s, sizeof(dims_str) - strlen(dims_str) - 1); |
462 | 463 | } |
463 | | - sprintf(s, " or %d", exact_dimensions[n-1]); |
464 | | - strcat(dims_str,s); |
| 464 | + snprintf(s, sizeof(s), " or %d", exact_dimensions[n-1]); |
| 465 | + strncat(dims_str, s, sizeof(dims_str) - strlen(dims_str) - 1); |
465 | 466 | PyErr_Format(PyExc_TypeError, |
466 | 467 | "Array must have %s dimensions. Given array has %d dimensions", |
467 | 468 | dims_str, |
@@ -497,20 +498,20 @@ void free_cap(PyObject * cap) |
497 | 498 | { |
498 | 499 | if (size[i] == -1) |
499 | 500 | { |
500 | | - sprintf(s, "*,"); |
| 501 | + snprintf(s, sizeof(s), "*,"); |
501 | 502 | } |
502 | 503 | else |
503 | 504 | { |
504 | | - sprintf(s, "%ld,", (long int)size[i]); |
| 505 | + snprintf(s, sizeof(s), "%ld,", (long int)size[i]); |
505 | 506 | } |
506 | | - strcat(desired_dims,s); |
| 507 | + strncat(desired_dims, s, sizeof(desired_dims) - strlen(desired_dims) - 1); |
507 | 508 | } |
508 | 509 | len = strlen(desired_dims); |
509 | 510 | desired_dims[len-1] = ']'; |
510 | 511 | for (i = 0; i < n; i++) |
511 | 512 | { |
512 | | - sprintf(s, "%ld,", (long int)array_size(ary,i)); |
513 | | - strcat(actual_dims,s); |
| 513 | + snprintf(s, sizeof(s), "%ld,", (long int)array_size(ary,i)); |
| 514 | + strncat(actual_dims, s, sizeof(actual_dims) - strlen(actual_dims) - 1); |
514 | 515 | } |
515 | 516 | len = strlen(actual_dims); |
516 | 517 | actual_dims[len-1] = ']'; |
|
0 commit comments