on master help sign in
Checked error conditions and freed buffer after use
commitb531d09451e9cdd62d5cf284c143a7fe11bd4630 authorAhmad Salim Al-Sibahi <asal@itu.dk> dateMon 30 Mar 2015, 22:13 (12 years ago) parente63f318
1 file changed+4−1
rts/idris_rts.c+4−1
rts/idris_rts.c+4−1
@@ -503,12 +503,15 @@ VAL idris_strlen(VM* vm, VAL l) {
503503VAL idris_readStr(VM* vm, FILE* h) {
504504 char *buffer = NULL;
505505 size_t n = 0;
506+ ssize_t len;
507+ len = getline(&buffer, &n, h);
506508
507− if (getline(&buffer, &n, h) == 0) {
509+ if (len <= 0) {
508510 return MKSTR(vm, "");
509511 } else {
510512 return MKSTR(vm, buffer);
511513 }
514+ free(buffer);
512515}
513516
514517VAL idris_strHead(VM* vm, VAL str) {