linux_util.c (59794) | linux_util.c (63778) |
---|---|
1/* 2 * Copyright (c) 1994 Christos Zoulas 3 * Copyright (c) 1995 Frank van der Linden 4 * Copyright (c) 1995 Scott Bartram 5 * All rights reserved. 6 * 7 * Redistribution and use in source and binary forms, with or without 8 * modification, are permitted provided that the following conditions --- 13 unchanged lines hidden (view full) --- 22 * INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT 23 * NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, 24 * DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY 25 * THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT 26 * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF 27 * THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. 28 * 29 * from: svr4_util.c,v 1.5 1995/01/22 23:44:50 christos Exp | 1/* 2 * Copyright (c) 1994 Christos Zoulas 3 * Copyright (c) 1995 Frank van der Linden 4 * Copyright (c) 1995 Scott Bartram 5 * All rights reserved. 6 * 7 * Redistribution and use in source and binary forms, with or without 8 * modification, are permitted provided that the following conditions --- 13 unchanged lines hidden (view full) --- 22 * INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT 23 * NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, 24 * DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY 25 * THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT 26 * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF 27 * THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. 28 * 29 * from: svr4_util.c,v 1.5 1995/01/22 23:44:50 christos Exp |
30 * $FreeBSD: head/sys/compat/linux/linux_util.c 59794 2000-04-30 18:52:11Z phk $ | 30 * $FreeBSD: head/sys/compat/linux/linux_util.c 63778 2000-07-23 16:54:18Z marcel $ |
31 */ 32 33#include <sys/param.h> 34#include <sys/systm.h> 35#include <sys/namei.h> 36#include <sys/proc.h> 37#include <sys/malloc.h> 38#include <sys/vnode.h> --- 118 unchanged lines hidden (view full) --- 157 } 158 159 } 160 if (sgp == NULL) 161 *pbuf = buf; 162 else { 163 sz = &ptr[len] - buf; 164 *pbuf = stackgap_alloc(sgp, sz + 1); | 31 */ 32 33#include <sys/param.h> 34#include <sys/systm.h> 35#include <sys/namei.h> 36#include <sys/proc.h> 37#include <sys/malloc.h> 38#include <sys/vnode.h> --- 118 unchanged lines hidden (view full) --- 157 } 158 159 } 160 if (sgp == NULL) 161 *pbuf = buf; 162 else { 163 sz = &ptr[len] - buf; 164 *pbuf = stackgap_alloc(sgp, sz + 1); |
165 error = copyout(buf, *pbuf, sz); | 165 if (*pbuf != NULL) 166 error = copyout(buf, *pbuf, sz); 167 else 168 error = ENAMETOOLONG; |
166 free(buf, M_TEMP); 167 } 168 169 NDFREE(&nd, NDF_ONLY_PNBUF); 170 vrele(nd.ni_vp); 171 if (!cflag) { 172 NDFREE(&ndroot, NDF_ONLY_PNBUF); 173 vrele(ndroot.ni_vp); 174 } 175 return error; 176 177bad: 178 NDFREE(&ndroot, NDF_ONLY_PNBUF); 179 vrele(ndroot.ni_vp); 180 NDFREE(&nd, NDF_ONLY_PNBUF); 181 vrele(nd.ni_vp); 182 free(buf, M_TEMP); 183 return error; 184} | 169 free(buf, M_TEMP); 170 } 171 172 NDFREE(&nd, NDF_ONLY_PNBUF); 173 vrele(nd.ni_vp); 174 if (!cflag) { 175 NDFREE(&ndroot, NDF_ONLY_PNBUF); 176 vrele(ndroot.ni_vp); 177 } 178 return error; 179 180bad: 181 NDFREE(&ndroot, NDF_ONLY_PNBUF); 182 vrele(ndroot.ni_vp); 183 NDFREE(&nd, NDF_ONLY_PNBUF); 184 vrele(nd.ni_vp); 185 free(buf, M_TEMP); 186 return error; 187} |