summaryrefslogtreecommitdiff
path: root/usr/src/cmd/boot
diff options
context:
space:
mode:
authorRoger A. Faulkner <Roger.Faulkner@Oracle.COM>2010-08-12 14:55:22 -0700
committerRoger A. Faulkner <Roger.Faulkner@Oracle.COM>2010-08-12 14:55:22 -0700
commit23a1ccea6aac035f084a7a4cdc968687d1b02daf (patch)
tree6ed5e310ce6dd96f997b0c0f9735805d513d898a /usr/src/cmd/boot
parent29c3196fe2acc65721d8b9b5ea708d3a87facde0 (diff)
downloadillumos-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.c35
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) &&