summaryrefslogtreecommitdiffstats
path: root/usr.sbin/bsdinstall
diff options
context:
space:
mode:
authored <ed@FreeBSD.org>2016-04-26 10:04:06 +0000
committered <ed@FreeBSD.org>2016-04-26 10:04:06 +0000
commit3a781f5763f79dac12a95f066a85463f4e7dedfa (patch)
tree3736b1175d5dae33ad0904a9ae5bc7b0d4feed4d /usr.sbin/bsdinstall
parent94d1b679ab1271680a97062c871453e398d0f71c (diff)
downloadFreeBSD-src-3a781f5763f79dac12a95f066a85463f4e7dedfa.zip
FreeBSD-src-3a781f5763f79dac12a95f066a85463f4e7dedfa.tar.gz
Remove unportable calls to basename().
The POSIX version of basename() doesn't use a 'const char *' argument; the function may overwrite its input buffer. Instead of copying the input string, let's just simplify this code by using our getprogname() function that already returns the name of the application in the right format. Reviewed by: allanjude Differential Revision: https://reviews.freebsd.org/D6094
Diffstat (limited to 'usr.sbin/bsdinstall')
-rw-r--r--usr.sbin/bsdinstall/partedit/partedit.c21
1 files changed, 11 insertions, 10 deletions
diff --git a/usr.sbin/bsdinstall/partedit/partedit.c b/usr.sbin/bsdinstall/partedit/partedit.c
index f022044..6723af5 100644
--- a/usr.sbin/bsdinstall/partedit/partedit.c
+++ b/usr.sbin/bsdinstall/partedit/partedit.c
@@ -27,15 +27,15 @@
*/
#include <sys/param.h>
-#include <libgen.h>
-#include <libutil.h>
-#include <inttypes.h>
-#include <errno.h>
-#include <fstab.h>
-#include <libgeom.h>
#include <dialog.h>
#include <dlg_keys.h>
+#include <errno.h>
+#include <fstab.h>
+#include <inttypes.h>
+#include <libgeom.h>
+#include <libutil.h>
+#include <stdlib.h>
#include "diskeditor.h"
#include "partedit.h"
@@ -71,13 +71,14 @@ int
main(int argc, const char **argv)
{
struct partition_metadata *md;
- const char *prompt;
+ const char *progname, *prompt;
struct partedit_item *items = NULL;
struct gmesh mesh;
int i, op, nitems, nscroll;
int error;
- if (strcmp(basename(argv[0]), "sade") == 0)
+ progname = getprogname();
+ if (strcmp(progname, "sade") == 0)
sade_mode = 1;
TAILQ_INIT(&part_metadata);
@@ -93,7 +94,7 @@ main(int argc, const char **argv)
/* Revert changes on SIGINT */
signal(SIGINT, sigint_handler);
- if (strcmp(basename(argv[0]), "autopart") == 0) { /* Guided */
+ if (strcmp(progname, "autopart") == 0) { /* Guided */
prompt = "Please review the disk setup. When complete, press "
"the Finish button.";
/* Experimental ZFS autopartition support */
@@ -102,7 +103,7 @@ main(int argc, const char **argv)
} else {
part_wizard("ufs");
}
- } else if (strcmp(basename(argv[0]), "scriptedpart") == 0) {
+ } else if (strcmp(progname, "scriptedpart") == 0) {
error = scripted_editor(argc, argv);
prompt = NULL;
if (error != 0) {
OpenPOWER on IntegriCloud