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:
jh 2012-01-06 09:17:34 +00:00
parent cba3fc2b82
commit 3ff26fa74b

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);