40 lines
1.7 KiB
Diff
40 lines
1.7 KiB
Diff
If the size of int is different from IGRAPH_INTEGER_SIZE, the integer size
|
|
passed to these vararg arguments is different from the assumed one,
|
|
leading to undefined behavior.
|
|
Submitted upstream: https://github.com/igraph/igraph/pull/2423
|
|
|
|
|
|
diff -ur a/examples/simple/igraph_union.c b/examples/simple/igraph_union.c
|
|
--- a/examples/simple/igraph_union.c
|
|
+++ b/examples/simple/igraph_union.c
|
|
@@ -103,7 +103,7 @@
|
|
igraph_vector_ptr_init(&glist, 10);
|
|
for (i = 0; i < igraph_vector_ptr_size(&glist); i++) {
|
|
VECTOR(glist)[i] = calloc(1, sizeof(igraph_t));
|
|
- igraph_vector_int_init_int_end(&v, -1, i, i + 1, 1, 0, -1);
|
|
+ igraph_vector_int_init_int_end(&v, -1, (int) i, (int) i + 1, 1, 0, -1);
|
|
igraph_create(VECTOR(glist)[i], &v, 0, IGRAPH_DIRECTED);
|
|
igraph_vector_int_destroy(&v);
|
|
}
|
|
@@ -123,7 +123,7 @@
|
|
igraph_vector_ptr_init(&glist, 10);
|
|
for (i = 0; i < igraph_vector_ptr_size(&glist); i++) {
|
|
VECTOR(glist)[i] = calloc(1, sizeof(igraph_t));
|
|
- igraph_vector_int_init_int_end(&v, -1, i, i + 1, 1, 0, -1);
|
|
+ igraph_vector_int_init_int_end(&v, -1, (int) i, (int) i + 1, 1, 0, -1);
|
|
igraph_create(VECTOR(glist)[i], &v, 0, IGRAPH_UNDIRECTED);
|
|
igraph_vector_int_destroy(&v);
|
|
}
|
|
diff -ur a/src/core/matrix.pmt b/src/core/matrix.pmt
|
|
--- a/src/core/matrix.pmt
|
|
+++ b/src/core/matrix.pmt
|
|
@@ -1863,7 +1863,7 @@
|
|
#ifdef FPRINTFUNC_ALIGNED
|
|
FPRINTFUNC_ALIGNED(file, VECTOR(column_width)[j], MATRIX(*m, i, j));
|
|
#else
|
|
- fprintf(file, format, VECTOR(column_width)[j], MATRIX(*m, i, j));
|
|
+ fprintf(file, format, (int) VECTOR(column_width)[j], MATRIX(*m, i, j));
|
|
#endif
|
|
}
|
|
fprintf(file, "\n");
|