clcommon.c (480B)
1 #include "clcommon.h" 2 3 int read_message_from_stdin(uint8_t **m, size_t *mlen) { 4 size_t tlen = 0; 5 size_t allocd = 1024; 6 uint8_t *t = malloc(allocd * sizeof(*t)); 7 8 int c; 9 while ((c = getc(stdin)) != EOF) { 10 if (allocd == tlen) { 11 allocd <<= 1; 12 t = realloc(t, allocd * sizeof(*t)); 13 14 if (t == NULL) 15 return -1; 16 } 17 t[tlen] = (uint8_t)(c & 0xff); 18 tlen++; 19 } 20 21 t = realloc(t, tlen * sizeof(*t)); 22 *m = t; 23 *mlen = tlen; 24 25 return 0; 26 }