Check the return value of sbuf_finish() in pfs_readlink() and return

ENAMETOOLONG if the buffer overflowed.

Approved by:	des
MFC after:	2 weeks
This commit is contained in:
Jaakko Heinonen 2012-01-06 09:17:34 +00:00
parent ff23e401a5
commit 9cb24e3c98

View file

@ -891,7 +891,11 @@ pfs_readlink(struct vop_readlink_args *va)
PFS_RETURN (error);
}
sbuf_finish(&sb);
if (sbuf_finish(&sb) != 0) {
sbuf_delete(&sb);
PFS_RETURN (ENAMETOOLONG);
}
error = uiomove_frombuf(sbuf_data(&sb), sbuf_len(&sb), uio);
sbuf_delete(&sb);
PFS_RETURN (error);