Check block extra_len in checkb()
[akaros.git] / kern / src / devfs.c
index d63e7f6..7bcdb51 100644 (file)
@@ -50,7 +50,7 @@ void devfs_init(void)
 struct file *make_device(char *path, int mode, int type,
                          struct file_operations *fop)
 {
-       struct file *f_dev = do_file_open(path, O_CREAT, mode);
+       struct file *f_dev = do_file_open(path, O_CREAT | O_RDWR, mode);
        assert(f_dev);
        /* Overwrite the f_op with our own f_ops */
        f_dev->f_dentry->d_inode->i_fop = fop;
@@ -82,6 +82,9 @@ ssize_t dev_stdin_read(struct file *file, char *buf, size_t count,
 {
        char c;
        extern struct kb_buffer cons_buf;
+
+       if (!count)
+               return 0;
        kb_get_from_buf(&cons_buf, &c, 1);
        /* TODO UMEM */
        if (current)