diff options
| author | Roger A. Faulkner <Roger.Faulkner@Oracle.COM> | 2010-08-12 14:55:22 -0700 |
|---|---|---|
| committer | Roger A. Faulkner <Roger.Faulkner@Oracle.COM> | 2010-08-12 14:55:22 -0700 |
| commit | 23a1ccea6aac035f084a7a4cdc968687d1b02daf (patch) | |
| tree | 6ed5e310ce6dd96f997b0c0f9735805d513d898a /usr/src/cmd/boot | |
| parent | 29c3196fe2acc65721d8b9b5ea708d3a87facde0 (diff) | |
| download | illumos-joyent-23a1ccea6aac035f084a7a4cdc968687d1b02daf.tar.gz | |
PSARC 2010/299 GNU/Linux/BSD compatibility functions
6960818 add get_nprocs(), getline(), strdupa(), strndup() to libc
6901783 strndup would be nice
6824404 libc should provide ffsl() & ffsll()
6793969 RFE: Add|stpcpy|to libc
6735446 Want a __progname symbol for BSD-style source compatibility
6421095 Solaris should provide strcasestr
6275498 Provide string compare functions wcscasecmp,wcsncasecmp in solaris like linux
--HG--
rename : usr/src/lib/libc/port/gen/strcasecmp.c => usr/src/lib/libc/port/gen/ascii_strcasecmp.c
rename : usr/src/lib/libc/port/gen/strncasecmp.c => usr/src/lib/libc/port/gen/ascii_strncasecmp.c
rename : usr/src/lib/libc/sparc/gen/strcasecmp.s => usr/src/lib/libc/sparc/gen/ascii_strcasecmp.s
rename : usr/src/lib/libc/sparcv9/gen/strcasecmp.s => usr/src/lib/libc/sparcv9/gen/ascii_strcasecmp.s
Diffstat (limited to 'usr/src/cmd/boot')
| -rw-r--r-- | usr/src/cmd/boot/bootadm/bootadm_hyper.c | 35 |
1 files changed, 12 insertions, 23 deletions
diff --git a/usr/src/cmd/boot/bootadm/bootadm_hyper.c b/usr/src/cmd/boot/bootadm/bootadm_hyper.c index eef7fe1d3d..01e7dd3e69 100644 --- a/usr/src/cmd/boot/bootadm/bootadm_hyper.c +++ b/usr/src/cmd/boot/bootadm/bootadm_hyper.c @@ -18,9 +18,9 @@ * * CDDL HEADER END */ + /* - * Copyright 2009 Sun Microsystems, Inc. All rights reserved. - * Use is subject to license terms. + * Copyright (c) 2009, 2010, Oracle and/or its affiliates. All rights reserved. */ #include <stdio.h> @@ -347,9 +347,8 @@ cvt_metal_option(char *optstr) if ((strncmp(optstr, "ttya-mode", namlen) == 0) || (strncmp(optstr, "ttyb-mode", namlen) == 0)) { - char *port = alloca(namlen + 1); + char *port = strndupa(optstr, namlen); - (void) strlcpy(port, optstr, namlen + 1); return (serial_metal_to_hyper(port, value)); } @@ -840,19 +839,15 @@ cvt_to_hyper(menu_t *mp, char *osroot, char *extra_args) * Process important lines from menu.lst boot entry. */ if (lp->flags == BAM_TITLE) { - title = alloca(strlen(lp->arg) + 1); - (void) strcpy(title, lp->arg); + title = strdupa(lp->arg); } else if (lp->cmd != NULL) { if (strcmp(lp->cmd, "findroot") == 0) { - findroot = alloca(strlen(lp->arg) + 1); - (void) strcpy(findroot, lp->arg); + findroot = strdupa(lp->arg); } else if (strcmp(lp->cmd, "bootfs") == 0) { - bootfs = alloca(strlen(lp->arg) + 1); - (void) strcpy(bootfs, lp->arg); + bootfs = strdupa(lp->arg); } else if (strcmp(lp->cmd, menu_cmds[MODULE_DOLLAR_CMD]) == 0) { - module = alloca(strlen(lp->arg) + 1); - (void) strcpy(module, lp->arg); + module = strdupa(lp->arg); } else if ((strcmp(lp->cmd, menu_cmds[KERNEL_DOLLAR_CMD]) == 0) && (ret = cvt_metal_kernel(lp->arg, @@ -1065,25 +1060,19 @@ cvt_to_metal(menu_t *mp, char *osroot, char *menu_root) * Process important lines from menu.lst boot entry. */ if (lp->flags == BAM_TITLE) { - title = alloca(strlen(lp->arg) + 1); - (void) strcpy(title, lp->arg); + title = strdupa(lp->arg); } else if (lp->cmd != NULL) { if (strcmp(lp->cmd, "findroot") == 0) { - findroot = alloca(strlen(lp->arg) + 1); - (void) strcpy(findroot, lp->arg); + findroot = strdupa(lp->arg); } else if (strcmp(lp->cmd, "bootfs") == 0) { - bootfs = alloca(strlen(lp->arg) + 1); - (void) strcpy(bootfs, lp->arg); + bootfs = strdupa(lp->arg); } else if (strcmp(lp->cmd, menu_cmds[MODULE_DOLLAR_CMD]) == 0) { if (strstr(lp->arg, "boot_archive") == NULL) { - module = alloca(strlen(lp->arg) + 1); - (void) strcpy(module, lp->arg); + module = strdupa(lp->arg); cvt_hyper_module(module, &kern_path); } else { - barchive_path = - alloca(strlen(lp->arg) + 1); - (void) strcpy(barchive_path, lp->arg); + barchive_path = strdupa(lp->arg); } } else if ((strcmp(lp->cmd, menu_cmds[KERNEL_DOLLAR_CMD]) == 0) && |
