aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorThomas White <taw@physics.org>2019-01-30 17:05:32 +0100
committerThomas White <taw@physics.org>2019-01-30 17:05:32 +0100
commit24b41117f5e0365f316f9b2decd7a52a0766b9d0 (patch)
tree0b3e6023342f9775973f62d138ed1fd04c859218
parent52a25ae71793d63252a16f75085ace22eda76717 (diff)
Make sure of string length in get_event_string()
-rw-r--r--libcrystfel/src/events.c10
1 files changed, 5 insertions, 5 deletions
diff --git a/libcrystfel/src/events.c b/libcrystfel/src/events.c
index 2bf6cfad..7cd05784 100644
--- a/libcrystfel/src/events.c
+++ b/libcrystfel/src/events.c
@@ -297,13 +297,13 @@ char *get_event_string(struct event *ev)
if ( ev == NULL ) return strdup("(none)");
- ev_len = 0;
+ ev_len = 1; /* Zero terminator */
for ( i=0; i<ev->path_length; i++ ) {
ev_len += strlen(ev->path_entries[i]);
- ev_len += 1;
+ ev_len += 1; /* Slash afterwards */
}
- ev_len += 16*ev->dim_length;
- ev_len += 2;
+ ev_len += 16*ev->dim_length; /* Max length of number plus slash */
+ ev_len += 2; /* Double slash in middle */
evstr = malloc(ev_len);
if ( evstr == NULL ) return NULL;
@@ -318,7 +318,7 @@ char *get_event_string(struct event *ev)
for ( i=0; i<ev->dim_length; i++ ) {
char num_buf[16];
- sprintf(num_buf, "%i", ev->dim_entries[i]);
+ snprintf(num_buf, 16, "%i", ev->dim_entries[i]);
if ( i > 0 ) strcat(evstr, "/");
strcat(evstr, num_buf);
}