Remove fixed length commandline buffers.

git-svn-id: svn://svn.savannah.nongnu.org/qemu/trunk@4111 c046a42c-6fe2-441c-8c8c-71466251a162
This commit is contained in:
pbrook 2008-03-26 20:55:43 +00:00
parent 4af984a76a
commit fd5f393aba
2 changed files with 31 additions and 38 deletions

View file

@ -1945,7 +1945,7 @@ int main(int argc, char **argv)
char **target_environ, **wrk, **dst; char **target_environ, **wrk, **dst;
if (argc <= 1) if (argc <= 1)
usage(); usage(1);
/* init debug */ /* init debug */
cpu_set_log_filename(DEBUG_LOGFILE); cpu_set_log_filename(DEBUG_LOGFILE);
@ -1983,7 +1983,7 @@ int main(int argc, char **argv)
r = argv[optind++]; r = argv[optind++];
x86_stack_size = strtol(r, (char **)&r, 0); x86_stack_size = strtol(r, (char **)&r, 0);
if (x86_stack_size <= 0) if (x86_stack_size <= 0)
usage(); usage(1);
if (*r == 'M') if (*r == 'M')
x86_stack_size *= 1024 * 1024; x86_stack_size *= 1024 * 1024;
else if (*r == 'k' || *r == 'K') else if (*r == 'k' || *r == 'K')

65
vl.c
View file

@ -8202,21 +8202,21 @@ int main(int argc, char **argv)
const char *boot_devices = ""; const char *boot_devices = "";
DisplayState *ds = &display_state; DisplayState *ds = &display_state;
int cyls, heads, secs, translation; int cyls, heads, secs, translation;
char net_clients[MAX_NET_CLIENTS][256]; const char *net_clients[MAX_NET_CLIENTS];
int nb_net_clients; int nb_net_clients;
int hda_index; int hda_index;
int optind; int optind;
const char *r, *optarg; const char *r, *optarg;
CharDriverState *monitor_hd; CharDriverState *monitor_hd;
char monitor_device[128]; const char *monitor_device;
char serial_devices[MAX_SERIAL_PORTS][128]; const char *serial_devices[MAX_SERIAL_PORTS];
int serial_device_index; int serial_device_index;
char parallel_devices[MAX_PARALLEL_PORTS][128]; const char *parallel_devices[MAX_PARALLEL_PORTS];
int parallel_device_index; int parallel_device_index;
const char *loadvm = NULL; const char *loadvm = NULL;
QEMUMachine *machine; QEMUMachine *machine;
const char *cpu_model; const char *cpu_model;
char usb_devices[MAX_USB_CMDLINE][128]; const char *usb_devices[MAX_USB_CMDLINE];
int usb_devices_index; int usb_devices_index;
int fds[2]; int fds[2];
const char *pid_file = NULL; const char *pid_file = NULL;
@ -8270,16 +8270,16 @@ int main(int argc, char **argv)
kernel_cmdline = ""; kernel_cmdline = "";
cyls = heads = secs = 0; cyls = heads = secs = 0;
translation = BIOS_ATA_TRANSLATION_AUTO; translation = BIOS_ATA_TRANSLATION_AUTO;
pstrcpy(monitor_device, sizeof(monitor_device), "vc"); monitor_device = "vc";
pstrcpy(serial_devices[0], sizeof(serial_devices[0]), "vc"); serial_devices[0] = "vc";
for(i = 1; i < MAX_SERIAL_PORTS; i++) for(i = 1; i < MAX_SERIAL_PORTS; i++)
serial_devices[i][0] = '\0'; serial_devices[i] = NULL;
serial_device_index = 0; serial_device_index = 0;
pstrcpy(parallel_devices[0], sizeof(parallel_devices[0]), "vc"); parallel_devices[0] = "vc";
for(i = 1; i < MAX_PARALLEL_PORTS; i++) for(i = 1; i < MAX_PARALLEL_PORTS; i++)
parallel_devices[i][0] = '\0'; parallel_devices[i] = NULL;
parallel_device_index = 0; parallel_device_index = 0;
usb_devices_index = 0; usb_devices_index = 0;
@ -8435,9 +8435,9 @@ int main(int argc, char **argv)
} }
break; break;
case QEMU_OPTION_nographic: case QEMU_OPTION_nographic:
pstrcpy(serial_devices[0], sizeof(serial_devices[0]), "stdio"); serial_devices[0] = "stdio";
pstrcpy(parallel_devices[0], sizeof(parallel_devices[0]), "null"); parallel_devices[0] = "null";
pstrcpy(monitor_device, sizeof(monitor_device), "stdio"); monitor_device = "stdio";
nographic = 1; nographic = 1;
break; break;
#ifdef CONFIG_CURSES #ifdef CONFIG_CURSES
@ -8505,9 +8505,7 @@ int main(int argc, char **argv)
fprintf(stderr, "qemu: too many network clients\n"); fprintf(stderr, "qemu: too many network clients\n");
exit(1); exit(1);
} }
pstrcpy(net_clients[nb_net_clients], net_clients[nb_net_clients] = optarg;
sizeof(net_clients[0]),
optarg);
nb_net_clients++; nb_net_clients++;
break; break;
#ifdef CONFIG_SLIRP #ifdef CONFIG_SLIRP
@ -8642,15 +8640,14 @@ int main(int argc, char **argv)
break; break;
} }
case QEMU_OPTION_monitor: case QEMU_OPTION_monitor:
pstrcpy(monitor_device, sizeof(monitor_device), optarg); monitor_device = optarg;
break; break;
case QEMU_OPTION_serial: case QEMU_OPTION_serial:
if (serial_device_index >= MAX_SERIAL_PORTS) { if (serial_device_index >= MAX_SERIAL_PORTS) {
fprintf(stderr, "qemu: too many serial ports\n"); fprintf(stderr, "qemu: too many serial ports\n");
exit(1); exit(1);
} }
pstrcpy(serial_devices[serial_device_index], serial_devices[serial_device_index] = optarg;
sizeof(serial_devices[0]), optarg);
serial_device_index++; serial_device_index++;
break; break;
case QEMU_OPTION_parallel: case QEMU_OPTION_parallel:
@ -8658,8 +8655,7 @@ int main(int argc, char **argv)
fprintf(stderr, "qemu: too many parallel ports\n"); fprintf(stderr, "qemu: too many parallel ports\n");
exit(1); exit(1);
} }
pstrcpy(parallel_devices[parallel_device_index], parallel_devices[parallel_device_index] = optarg;
sizeof(parallel_devices[0]), optarg);
parallel_device_index++; parallel_device_index++;
break; break;
case QEMU_OPTION_loadvm: case QEMU_OPTION_loadvm:
@ -8704,9 +8700,7 @@ int main(int argc, char **argv)
fprintf(stderr, "Too many USB devices\n"); fprintf(stderr, "Too many USB devices\n");
exit(1); exit(1);
} }
pstrcpy(usb_devices[usb_devices_index], usb_devices[usb_devices_index] = optarg;
sizeof(usb_devices[usb_devices_index]),
optarg);
usb_devices_index++; usb_devices_index++;
break; break;
case QEMU_OPTION_smp: case QEMU_OPTION_smp:
@ -8894,10 +8888,8 @@ int main(int argc, char **argv)
/* init network clients */ /* init network clients */
if (nb_net_clients == 0) { if (nb_net_clients == 0) {
/* if no clients, we use a default config */ /* if no clients, we use a default config */
pstrcpy(net_clients[0], sizeof(net_clients[0]), net_clients[0] = "nic";
"nic"); net_clients[1] = "user";
pstrcpy(net_clients[1], sizeof(net_clients[0]),
"user");
nb_net_clients = 2; nb_net_clients = 2;
} }
@ -9016,17 +9008,18 @@ int main(int argc, char **argv)
/* Maintain compatibility with multiple stdio monitors */ /* Maintain compatibility with multiple stdio monitors */
if (!strcmp(monitor_device,"stdio")) { if (!strcmp(monitor_device,"stdio")) {
for (i = 0; i < MAX_SERIAL_PORTS; i++) { for (i = 0; i < MAX_SERIAL_PORTS; i++) {
if (!strcmp(serial_devices[i],"mon:stdio")) { const char *devname = serial_devices[i];
monitor_device[0] = '\0'; if (devname && !strcmp(devname,"mon:stdio")) {
monitor_device = NULL;
break; break;
} else if (!strcmp(serial_devices[i],"stdio")) { } else if (devname && !strcmp(devname,"stdio")) {
monitor_device[0] = '\0'; monitor_device = NULL;
pstrcpy(serial_devices[0], sizeof(serial_devices[0]), "mon:stdio"); serial_devices[i] = "mon:stdio";
break; break;
} }
} }
} }
if (monitor_device[0] != '\0') { if (monitor_device) {
monitor_hd = qemu_chr_open(monitor_device); monitor_hd = qemu_chr_open(monitor_device);
if (!monitor_hd) { if (!monitor_hd) {
fprintf(stderr, "qemu: could not open monitor device '%s'\n", monitor_device); fprintf(stderr, "qemu: could not open monitor device '%s'\n", monitor_device);
@ -9037,7 +9030,7 @@ int main(int argc, char **argv)
for(i = 0; i < MAX_SERIAL_PORTS; i++) { for(i = 0; i < MAX_SERIAL_PORTS; i++) {
const char *devname = serial_devices[i]; const char *devname = serial_devices[i];
if (devname[0] != '\0' && strcmp(devname, "none")) { if (devname && strcmp(devname, "none")) {
serial_hds[i] = qemu_chr_open(devname); serial_hds[i] = qemu_chr_open(devname);
if (!serial_hds[i]) { if (!serial_hds[i]) {
fprintf(stderr, "qemu: could not open serial device '%s'\n", fprintf(stderr, "qemu: could not open serial device '%s'\n",
@ -9051,7 +9044,7 @@ int main(int argc, char **argv)
for(i = 0; i < MAX_PARALLEL_PORTS; i++) { for(i = 0; i < MAX_PARALLEL_PORTS; i++) {
const char *devname = parallel_devices[i]; const char *devname = parallel_devices[i];
if (devname[0] != '\0' && strcmp(devname, "none")) { if (devname && strcmp(devname, "none")) {
parallel_hds[i] = qemu_chr_open(devname); parallel_hds[i] = qemu_chr_open(devname);
if (!parallel_hds[i]) { if (!parallel_hds[i]) {
fprintf(stderr, "qemu: could not open parallel device '%s'\n", fprintf(stderr, "qemu: could not open parallel device '%s'\n",