strndup.c (270096) | strndup.c (270892) |
---|---|
1/*- 2 * Copyright (c) 2003 Networks Associates Technology, Inc. 3 * All rights reserved. 4 * 5 * This software was developed for the FreeBSD Project by Network 6 * Associates Laboratories, the Security Research Division of Network 7 * Associates, Inc. under DARPA/SPAWAR contract N66001-01-C-8035 8 * ("CBOSS"), as part of the DARPA CHATS research program. --- 16 unchanged lines hidden (view full) --- 25 * OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) 26 * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT 27 * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY 28 * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF 29 * SUCH DAMAGE. 30 */ 31 32#include <sys/cdefs.h> | 1/*- 2 * Copyright (c) 2003 Networks Associates Technology, Inc. 3 * All rights reserved. 4 * 5 * This software was developed for the FreeBSD Project by Network 6 * Associates Laboratories, the Security Research Division of Network 7 * Associates, Inc. under DARPA/SPAWAR contract N66001-01-C-8035 8 * ("CBOSS"), as part of the DARPA CHATS research program. --- 16 unchanged lines hidden (view full) --- 25 * OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) 26 * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT 27 * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY 28 * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF 29 * SUCH DAMAGE. 30 */ 31 32#include <sys/cdefs.h> |
33__FBSDID("$FreeBSD: head/sys/libkern/strndup.c 270096 2014-08-17 09:44:42Z trasz $"); | 33__FBSDID("$FreeBSD: stable/10/sys/libkern/strndup.c 270892 2014-08-31 21:18:23Z trasz $"); |
34 35#include <sys/param.h> 36#include <sys/kernel.h> 37#include <sys/libkern.h> 38#include <sys/malloc.h> 39 40char * 41strndup(const char *string, size_t maxlen, struct malloc_type *type) 42{ 43 size_t len; 44 char *copy; 45 46 len = strnlen(string, maxlen) + 1; 47 copy = malloc(len, type, M_WAITOK); 48 bcopy(string, copy, len); 49 copy[len - 1] = '\0'; 50 return (copy); 51} | 34 35#include <sys/param.h> 36#include <sys/kernel.h> 37#include <sys/libkern.h> 38#include <sys/malloc.h> 39 40char * 41strndup(const char *string, size_t maxlen, struct malloc_type *type) 42{ 43 size_t len; 44 char *copy; 45 46 len = strnlen(string, maxlen) + 1; 47 copy = malloc(len, type, M_WAITOK); 48 bcopy(string, copy, len); 49 copy[len - 1] = '\0'; 50 return (copy); 51} |