aboutsummaryrefslogtreecommitdiff
path: root/src/lib
diff options
context:
space:
mode:
Diffstat (limited to 'src/lib')
-rw-r--r--src/lib/libc/stdio.c6
1 files changed, 5 insertions, 1 deletions
diff --git a/src/lib/libc/stdio.c b/src/lib/libc/stdio.c
index 864fb34..bfa2f74 100644
--- a/src/lib/libc/stdio.c
+++ b/src/lib/libc/stdio.c
@@ -225,6 +225,10 @@ size_t fread(void *ptr, size_t size, size_t nmemb, FILE *stream) {
}
int fgetc(FILE *stream) {
+ if (stream == NULL) {
+ return EOF;
+ }
+
dbg_printf("FGETC %p\n", stream);
// TODO buffering && ungetc
@@ -321,10 +325,10 @@ int setvbuf(FILE *stream, char *buf, int mode, size_t size) {
int fflush(FILE* stream) {
dbg_printf("FFLUSH %p\n", stream);
- if (!(stream->file_mode & FM_WRITE)) return 0;
if (stream == NULL || stream->fd == 0) {
return EOF;
}
+ if (!(stream->file_mode & FM_WRITE)) return 0;
if (stream->buf_mode != 0 && stream->out_buf_used > 0) {
size_t ret = sc_write(stream->fd, stream->pos, stream->out_buf_used, stream->out_buf);