Bugs in SSH module (ssh.c)

Bug #1838763 reported by 周文青 on 2019-08-02
14
This bug affects 2 people
Affects Status Importance Assigned to Milestone
QEMU
Undecided
Unassigned

Bug Description

I installed gcc-8&libssh* on my Ubuntu 18.04 arm64.When I was compiling any version of qemu like 3.1.0 4.0.0or 4.1.0 with SSH support,the GCC went wrong.It said some vars undeclared like'SSH_KNOWN_HOSTS_OTHER','SSH_KNOWN_HOST_UNKNOWN',etc.

Download full text (3.6 KiB)

$ uname -smrv
Linux 5.1.17 #7 SMP Wed Jul 10 08:35:08 UTC 2019 aarch64

$ lsb_release -a
No LSB modules are available.
Distributor ID: Ubuntu
Description: Ubuntu 18.04.2 LTS
Release: 18.04
Codename: bionic

$ dpkg -l|fgrep libssh
ii libssh-4:arm64 0.8.0~20170825.94fa1e38-1ubuntu0.2 arm64 tiny C SSH library (OpenSSL flavor)
ii libssh-dev 0.8.0~20170825.94fa1e38-1ubuntu0.2 arm64 tiny C SSH library. Development files (OpenSSL flavor)

$ ./configure
...
libssh support yes
...

$ make
...
  CC block/ssh.o
block/ssh.c: In function 'check_host_key_knownhosts':
block/ssh.c:281:28: error: storage size of 'state' isn't known
     enum ssh_known_hosts_e state;
                            ^~~~~
block/ssh.c:289:13: error: implicit declaration of function 'ssh_session_is_known_server' [-Werror=implicit-function-declaration]
     state = ssh_session_is_known_server(s->session);
             ^~~~~~~~~~~~~~~~~~~~~~~~~~~
block/ssh.c:289:13: error: nested extern declaration of 'ssh_session_is_known_server' [-Werror=nested-externs]
block/ssh.c:293:10: error: 'SSH_KNOWN_HOSTS_OK' undeclared (first use in this function); did you mean 'SSH_OPTIONS_HOSTKEYS'?
     case SSH_KNOWN_HOSTS_OK:
          ^~~~~~~~~~~~~~~~~~
          SSH_OPTIONS_HOSTKEYS
block/ssh.c:293:10: note: each undeclared identifier is reported only once for each function it appears in
block/ssh.c:297:10: error: 'SSH_KNOWN_HOSTS_CHANGED' undeclared (first use in this function); did you mean 'SSH_KNOWN_HOSTS_OK'?
     case SSH_KNOWN_HOSTS_CHANGED:
          ^~~~~~~~~~~~~~~~~~~~~~~
          SSH_KNOWN_HOSTS_OK
block/ssh.c:301:48: error: 'SSH_PUBLICKEY_HASH_SHA256' undeclared (first use in this function); did you mean 'SSH_PUBLICKEY_HASH_SHA1'?
             r = ssh_get_publickey_hash(pubkey, SSH_PUBLICKEY_HASH_SHA256,
                                                ^~~~~~~~~~~~~~~~~~~~~~~~~
                                                SSH_PUBLICKEY_HASH_SHA1
block/ssh.c:307:27: error: implicit declaration of function 'ssh_get_fingerprint_hash'; did you mean 'ssh_get_pubkey_hash'? [-Werror=implicit-function-declaration]
             fingerprint = ssh_get_fingerprint_hash(SSH_PUBLICKEY_HASH_SHA256,
                           ^~~~~~~~~~~~~~~~~~~~~~~~
                           ssh_get_pubkey_hash
block/ssh.c:307:27: error: nested extern declaration of 'ssh_get_fingerprint_hash' [-Werror=nested-externs]
block/ssh.c:324:10: error: 'SSH_KNOWN_HOSTS_OTHER' undeclared (first use in this function); did you mean 'SSH_KNOWN_HOSTS_OK'?
     case SSH_KNOWN_HOSTS_OTHER:
          ^~~~~~~~~~~~~~~~~~~~~
          SSH_KNOWN_HOSTS_OK
block/ssh.c:329:10: error: 'SSH_KNOWN_HOSTS_UNKNOWN' undeclared (first use in this function); did you mean 'SSH_KNOWN_HOSTS_CHANGED'?
     case SSH_KNOWN_HOSTS_UNKNOWN:
          ^~~~~~~~~~~~~~~~~~~~~~~
          SSH_KNOWN_HOSTS_CHANGED
block/ssh.c:333:10: error: 'SSH_KNOWN_HOSTS_NOT_FOUND' undeclared (first use in this function); did you mean 'SSH_KNOWN_HOSTS_UNKNOWN'?
     case SSH_KNOWN_HOSTS_NOT_FOUND:
          ^~~~~~~~~~~~~~~~~~~~~~~~~
          SSH_KNOWN_HOSTS_UNKNOWN
block/ssh.c:337:10: error:...

Read more...

Changed in qemu:
status: New → Confirmed
Thomas Huth (th-huth) wrote :

I think that libssh in Ubuntu 18.04 is just broken. I don't think that we'll include a work-around in QEMU for this anymore, now that 20.04 is already released and works fine. Thus closing this as WONTFIX.

Changed in qemu:
status: Confirmed → Won't Fix
To post a comment you must log in.
This report contains Public information  Edit
Everyone can see this information.

Other bug subscribers