sigaction(SIGCONT, &act, NULL);
chr = qemu_chr_open_fd(0, 1, common, errp);
+ if (!chr) {
+ return NULL;
+ }
chr->chr_close = qemu_chr_close_stdio;
chr->chr_set_echo = qemu_chr_set_echo_stdio;
if (opts->has_signal) {
tty_serial_init(fd, 115200, 'N', 8, 1);
chr = qemu_chr_open_fd(fd, fd, backend, errp);
+ if (!chr) {
+ return NULL;
+ }
chr->chr_ioctl = tty_serial_ioctl;
chr->chr_close = qemu_chr_close_tty;
return chr;
if (tioc == NULL) {
error_free(err);
tcp_chr_disconnect(chr);
+ return;
}
object_unref(OBJECT(s->ioc));
s->ioc = QIO_CHANNEL(tioc);
TCPCharDriver *s = chr->opaque;
QIOChannelSocket *sioc;
- while (!s->connected) {
+ /* It can't wait on s->connected, since it is set asynchronously
+ * in TLS and telnet cases, only wait for an accepted socket */
+ while (!s->ioc) {
if (s->is_listen) {
fprintf(stderr, "QEMU waiting for connection on: %s\n",
chr->filename);