Merge branch 'ncsi_pack' into 'master'

ncsi: make ncsi_calculate_checksum work with unaligned data

Closes #43

See merge request slirp/libslirp!89
diff --git a/CHANGELOG.md b/CHANGELOG.md
index fe3a123..7f33557 100644
--- a/CHANGELOG.md
+++ b/CHANGELOG.md
@@ -15,6 +15,30 @@
 
 ### Fixed
 
+## [4.5.0] - 2021-05-18
+
+### Added
+
+ - IPv6 forwarding. !62 !75 !77
+ - slirp_neighbor_info() to dump the ARP/NDP tables. !71
+
+### Changed
+
+ - Lazy guest address resolution for IPv6. !81
+ - Improve signal handling when spawning a child. !61
+ - Set macOS deployment target to macOS 10.4. !72
+ - slirp_add_hostfwd: Ensure all error paths set errno. !80
+ - More API documentation.
+
+### Fixed
+
+ - Assertion failure on unspecified IPv6 address. !86
+ - Disable polling for PRI on MacOS, fixing some closing streams issues. !73 
+ - Various memory leak fixes on fastq/batchq. !68
+ - Memory leak on IPv6 fast-send. !67
+ - Slow socket response on Windows. !64
+ - Misc build and code cleanups. !60 !63 !76 !79 !84
+
 ## [4.4.0] - 2020-12-02
 
 ### Added
@@ -134,7 +158,8 @@
  - Standalone project, removing any QEMU dependency.
  - License clarifications.
 
-[unreleased]: https://gitlab.freedesktop.org/slirp/libslirp/compare/v4.4.0...master
+[Unreleased]: https://gitlab.freedesktop.org/slirp/libslirp/compare/v4.5.0...master
+[4.5.0]: https://gitlab.freedesktop.org/slirp/libslirp/compare/v4.4.0...v4.5.0
 [4.4.0]: https://gitlab.freedesktop.org/slirp/libslirp/compare/v4.3.1...v4.4.0
 [4.3.1]: https://gitlab.freedesktop.org/slirp/libslirp/compare/v4.3.0...v4.3.1
 [4.3.0]: https://gitlab.freedesktop.org/slirp/libslirp/compare/v4.2.0...v4.3.0
diff --git a/meson.build b/meson.build
index 82bc074..19d6775 100644
--- a/meson.build
+++ b/meson.build
@@ -1,5 +1,5 @@
 project('libslirp', 'c',
-  version : '4.4.0',
+  version : '4.5.0',
   license : 'BSD-3-Clause',
   default_options : ['warning_level=1', 'c_std=gnu99'],
   meson_version : '>= 0.50',
@@ -44,9 +44,9 @@
 # - If the interface is the same as the previous version, but bugs are
 #   fixed, change:
 #      REVISION += 1
-lt_current = 2
-lt_revision = 3
-lt_age = 2
+lt_current = 3
+lt_revision = 0
+lt_age = 3
 lt_version = '@0@.@1@.@2@'.format(lt_current - lt_age, lt_age, lt_revision)
 
 host_system = host_machine.system()
diff --git a/src/ip_icmp.c b/src/ip_icmp.c
index 78b73e1..7d8b60f 100644
--- a/src/ip_icmp.c
+++ b/src/ip_icmp.c
@@ -245,7 +245,7 @@
 
     default:
         m_free(m);
-    } /* swith */
+    } /* switch */
 
 end_error:
     /* m is m_free()'d xor put in a socket xor or given to ip_send */
diff --git a/src/ip_input.c b/src/ip_input.c
index f4fd85b..e86bed6 100644
--- a/src/ip_input.c
+++ b/src/ip_input.c
@@ -347,7 +347,7 @@
     /*
      * If the fragments concatenated to an mbuf that's bigger than the total
      * size of the fragment and the mbuf was not already using an m_ext buffer,
-     * then an m_ext buffer was alloced. But fp->ipq_next points to the old
+     * then an m_ext buffer was allocated. But fp->ipq_next points to the old
      * buffer (in the mbuf), so we must point ip into the new buffer.
      */
     if (m->m_flags & M_EXT) {