shithub: util

Download patch

ref: b299aa428c810f2b65d47c8e03aad9a5e527ab62
parent: 053b67a55eaad52c8ebd78a1908e2a913bded789
author: eli <eli@singularity>
date: Tue Dec 24 15:55:11 EST 2024

eof error on load

--- a/ann.c
+++ b/ann.c
@@ -638,6 +638,17 @@
 	return nil;
 }
 
+char*
+sreadline(int fd)
+{
+	char *ret = readline(fd);
+	if (ret == nil) {
+		fprint(2, "error: early end of file\n");
+		exits("eof");
+	}
+	return ret;
+}
+
 Ann*
 loadann(char *filename)
 {
@@ -652,7 +663,7 @@
 		return ann;
 	}
 
-	buf = readline(fd);
+	buf = sreadline(fd);
 	num_layers = atoi(buf);
 
 	if (num_layers < 2) {
@@ -662,7 +673,7 @@
 
 	layers = calloc(num_layers, sizeof(int));
 	for (i = 0; i < num_layers; i++) {
-		buf = readline(fd);
+		buf = sreadline(fd);
 		layers[i] = atoi(buf);
 	}
 
@@ -671,7 +682,7 @@
 		W = ann->weights[i];
 		for (j = 0; j <= W->inputs; j++)
 			for (k = 0; k < W->outputs; k++) {
-				buf = readline(fd);
+				buf = sreadline(fd);
 				W->values[j][k] = atof(buf);
 			}
 	}
--