shithub: riscv

Download patch

ref: e725771b5d8a78fd8ade6062925894cfe3f1d4d1
parent: 7cdc13accc1735d6b047d3e99f69df023b221908
author: cinap_lenrek <[email protected]>
date: Sun Mar 1 00:39:45 EST 2015

libdraw: use readn() to read headers and Fontchar array

the Fontchar array might be bigger than the i/o unit,
so we have to use readn() to properly read it.

--- a/sys/src/libdraw/readsubfont.c
+++ b/sys/src/libdraw/readsubfont.c
@@ -19,7 +19,7 @@
 			return nil;
 	}
 	p = nil;
-	if(read(fd, hdr, 3*12) != 3*12){
+	if(readn(fd, hdr, 3*12) != 3*12){
 		werrstr("readsubfont: header read error: %r");
 		goto Err;
 	}
@@ -31,7 +31,7 @@
 	p = malloc(6*(n+1));
 	if(p == nil)
 		goto Err;
-	if(read(fd, p, 6*(n+1)) != 6*(n+1)){
+	if(readn(fd, p, 6*(n+1)) != 6*(n+1)){
 		werrstr("readsubfont: fontchar read error: %r");
 		goto Err;
 	}
--- a/sys/src/libmemdraw/openmemsubfont.c
+++ b/sys/src/libmemdraw/openmemsubfont.c
@@ -20,7 +20,7 @@
 	i = readmemimage(fd);
 	if(i == nil)
 		goto Err;
-	if(read(fd, hdr, 3*12) != 3*12){
+	if(readn(fd, hdr, 3*12) != 3*12){
 		werrstr("openmemsubfont: header read error: %r");
 		goto Err;
 	}
@@ -32,7 +32,7 @@
 	p = malloc(6*(n+1));
 	if(p == nil)
 		goto Err;
-	if(read(fd, p, 6*(n+1)) != 6*(n+1)){
+	if(readn(fd, p, 6*(n+1)) != 6*(n+1)){
 		werrstr("openmemsubfont: fontchar read error: %r");
 		goto Err;
 	}