diff options
30 files changed, 272 insertions, 317 deletions
diff --git a/cddl/contrib/opensolaris/cmd/zfs/zfs_main.c b/cddl/contrib/opensolaris/cmd/zfs/zfs_main.c index e0fb953..54135f1 100644 --- a/cddl/contrib/opensolaris/cmd/zfs/zfs_main.c +++ b/cddl/contrib/opensolaris/cmd/zfs/zfs_main.c @@ -1712,7 +1712,7 @@ zfs_do_get(int argc, char **argv) default: (void) fprintf(stderr, gettext("invalid column name " - "'%s'\n"), value); + "'%s'\n"), suboptarg); usage(B_FALSE); } } @@ -1749,7 +1749,7 @@ zfs_do_get(int argc, char **argv) default: (void) fprintf(stderr, gettext("invalid source " - "'%s'\n"), value); + "'%s'\n"), suboptarg); usage(B_FALSE); } } @@ -1785,7 +1785,7 @@ zfs_do_get(int argc, char **argv) default: (void) fprintf(stderr, gettext("invalid type '%s'\n"), - value); + suboptarg); usage(B_FALSE); } } @@ -3155,7 +3155,7 @@ zfs_do_list(int argc, char **argv) default: (void) fprintf(stderr, gettext("invalid type '%s'\n"), - value); + suboptarg); usage(B_FALSE); } } diff --git a/cddl/contrib/opensolaris/cmd/zpool/zpool_main.c b/cddl/contrib/opensolaris/cmd/zpool/zpool_main.c index 6e1670e..c666263 100644 --- a/cddl/contrib/opensolaris/cmd/zpool/zpool_main.c +++ b/cddl/contrib/opensolaris/cmd/zpool/zpool_main.c @@ -5431,7 +5431,7 @@ zpool_do_get(int argc, char **argv) default: (void) fprintf(stderr, gettext("invalid column name " - "'%s'\n"), value); + "'%s'\n"), suboptarg); usage(B_FALSE); } } diff --git a/contrib/binutils/bfd/elf.c b/contrib/binutils/bfd/elf.c index bbf1617..ed09cb5 100644 --- a/contrib/binutils/bfd/elf.c +++ b/contrib/binutils/bfd/elf.c @@ -8934,14 +8934,14 @@ elf_create_symbuf (bfd_size_type symcount, Elf_Internal_Sym *isymbuf) shndx_count++; ssymbuf = bfd_malloc ((shndx_count + 1) * sizeof (*ssymbuf) - + (indbufend - indbuf) * sizeof (*ssymbuf)); + + (indbufend - indbuf) * sizeof (*ssym)); if (ssymbuf == NULL) { free (indbuf); return NULL; } - ssym = (struct elf_symbuf_symbol *) (ssymbuf + shndx_count); + ssym = (struct elf_symbuf_symbol *) (ssymbuf + shndx_count + 1); ssymbuf->ssym = NULL; ssymbuf->count = shndx_count; ssymbuf->st_shndx = 0; diff --git a/etc/periodic/daily/800.scrub-zfs b/etc/periodic/daily/800.scrub-zfs index 359be13..b7a009d 100755 --- a/etc/periodic/daily/800.scrub-zfs +++ b/etc/periodic/daily/800.scrub-zfs @@ -63,6 +63,11 @@ case "$daily_scrub_zfs_enable" in _last_scrub=$(zpool history ${pool} | \ sed -ne '2s/ .*$//p') fi + if [ -z "${_last_scrub}" ]; then + echo " skipping scrubbing of pool '${pool}':" + echo " can't get last scrubbing date" + continue + fi # Now minus last scrub (both in seconds) converted to days. _scrub_diff=$(expr -e \( $(date +%s) - \ diff --git a/lib/libc/db/hash/hash.c b/lib/libc/db/hash/hash.c index af80929..333b1a1 100644 --- a/lib/libc/db/hash/hash.c +++ b/lib/libc/db/hash/hash.c @@ -422,8 +422,10 @@ hdestroy(HTAB *hashp) if (hashp->tmp_buf) free(hashp->tmp_buf); - if (hashp->fp != -1) + if (hashp->fp != -1) { + (void)_fsync(hashp->fp); (void)_close(hashp->fp); + } free(hashp); @@ -458,6 +460,8 @@ hash_sync(const DB *dbp, u_int32_t flags) return (0); if (__buf_free(hashp, 0, 1) || flush_meta(hashp)) return (ERROR); + if (hashp->fp != -1 && _fsync(hashp->fp) != 0) + return (ERROR); hashp->new_file = 0; return (0); } diff --git a/release/doc/en_US.ISO8859-1/errata/article.xml b/release/doc/en_US.ISO8859-1/errata/article.xml index fee035f..76c0c44 100644 --- a/release/doc/en_US.ISO8859-1/errata/article.xml +++ b/release/doc/en_US.ISO8859-1/errata/article.xml @@ -4,8 +4,10 @@ <!ENTITY % release PUBLIC "-//FreeBSD//ENTITIES Release Specification//EN" "http://www.FreeBSD.org/release/XML/release.ent"> %release; -<!ENTITY security SYSTEM "../../share/xml/security.xml"> -<!ENTITY errata SYSTEM "../../share/xml/errata.xml"> +<!ENTITY security PUBLIC "-//FreeBSD//ENTITIES Security Advisory List//EN" + "http://www.FreeBSD.org/release/XML/share/xml/security.xml"> +<!ENTITY errata PUBLIC "-//FreeBSD//ENTITIES Errata List//EN" + "http://www.FreeBSD.org/release/XML/share/xml/errata.xml"> ]> <article xmlns="http://docbook.org/ns/docbook" diff --git a/release/doc/en_US.ISO8859-1/hardware/article.xml b/release/doc/en_US.ISO8859-1/hardware/article.xml index 47b2d58..6a14f5c 100644 --- a/release/doc/en_US.ISO8859-1/hardware/article.xml +++ b/release/doc/en_US.ISO8859-1/hardware/article.xml @@ -1,6 +1,6 @@ <?xml version="1.0" encoding="iso-8859-1"?> <!DOCTYPE article PUBLIC "-//FreeBSD//DTD DocBook XML V5.0-Based Extension//EN" - "../../../share/xml/freebsd50.dtd" [ + "http://www.FreeBSD.org/XML/share/xml/freebsd50.dtd" [ <!ENTITY % release PUBLIC "-//FreeBSD//ENTITIES Release Specification//EN" "release.ent"> %release; <!ENTITY % devauto PUBLIC "-//FreeBSD//ENTITIES Auto Generated Device Lists//EN" "nonexistent"> diff --git a/release/doc/en_US.ISO8859-1/readme/article.xml b/release/doc/en_US.ISO8859-1/readme/article.xml index bdae743..4c3da6a 100644 --- a/release/doc/en_US.ISO8859-1/readme/article.xml +++ b/release/doc/en_US.ISO8859-1/readme/article.xml @@ -1,6 +1,6 @@ <?xml version="1.0" encoding="iso-8859-1"?> <!DOCTYPE article PUBLIC "-//FreeBSD//DTD DocBook XML V5.0-Based Extension//EN" - "../../../share/xml/freebsd50.dtd" [ + "http://www.FreeBSD.org/XML/share/xml/freebsd50.dtd" [ <!ENTITY % release PUBLIC "-//FreeBSD//ENTITIES Release Specification//EN" "release.ent"> %release; ]> diff --git a/release/doc/en_US.ISO8859-1/relnotes/article.xml b/release/doc/en_US.ISO8859-1/relnotes/article.xml index 825fa10..f91671a 100644 --- a/release/doc/en_US.ISO8859-1/relnotes/article.xml +++ b/release/doc/en_US.ISO8859-1/relnotes/article.xml @@ -1,14 +1,19 @@ <?xml version="1.0" encoding="iso-8859-1"?> <!DOCTYPE article PUBLIC "-//FreeBSD//DTD DocBook XML V5.0-Based Extension//EN" - "../../../share/xml/freebsd50.dtd" [ -<!ENTITY % release PUBLIC "-//FreeBSD//ENTITIES Release Specification//EN" "release.ent"> + "http://www.FreeBSD.org/XML/share/xml/freebsd50.dtd" [ +<!ENTITY % release PUBLIC "-//FreeBSD//ENTITIES Release Specification//EN" + "http://www.FreeBSD.org/release/XML/share/xml/release.ent"> %release; -<!ENTITY % sponsor PUBLIC "-//FreeBSD//ENTITIES Sponsor Specification//EN" "sponsor.ent"> +<!ENTITY % sponsor PUBLIC "-//FreeBSD//ENTITIES Sponsor Specification//EN" + "http://www.FreeBSD.org/release/XML/share/xml/sponsor.ent"> %sponsor; -<!ENTITY % vendor PUBLIC "-//FreeBSD//ENTITIES Vendor Specification//EN" "vendor.ent"> +<!ENTITY % vendor PUBLIC "-//FreeBSD//ENTITIES Vendor Specification//EN" + "http://www.FreeBSD.org/release/XML/share/xml/vendor.ent"> %vendor; -<!ENTITY security SYSTEM "../../share/xml/security.xml"> -<!ENTITY errata SYSTEM "../../share/xml/errata.xml"> +<!ENTITY security PUBLIC "-//FreeBSD//ENTITIES Security Advisory List//EN" + "http://www.FreeBSD.org/release/XML/share/xml/security.xml"> +<!ENTITY errata PUBLIC "-//FreeBSD//ENTITIES Errata List//EN" + "http://www.FreeBSD.org/release/XML/share/xml/errata.xml"> ]> <article xmlns="http://docbook.org/ns/docbook" xmlns:xlink="http://www.w3.org/1999/xlink" version="5.0"> @@ -26,7 +31,7 @@ <!-- Last rev: 284813 --> <copyright> - <year>2015</year> + <year>2016</year> <holder role="mailto:doc@FreeBSD.org">The &os; Documentation Project</holder> </copyright> @@ -166,42 +171,13 @@ <sect2 xml:id="userland-programs"> <title>Userland Application Changes</title> - <para revision="286064">The &man.jail.8; utility has been - updated to include a new flag, <literal>-l</literal>, which - ensures a clean environment in the target jail when used. - Additionally, &man.jail.8; will run a shell within the target - jail when run no commands are specified.</para> - - <para revision="287122">The &man.mkimg.1; utility has been - updated to include support for <literal>NTFS</literal> - filesystems in both <acronym>MBR</acronym> and - <acronym>GPT</acronym> partitioning schemes.</para> - - <para revision="288202" contrib="sponsor" sponsor="&ff;">The - &man.ar.1; utility now enables deterministic mode - (<literal>-D</literal>) by default. This behavior can be - disabled by specifying the <literal>-U</literal> flag.</para> - - <para revision="287746">The &man.pciconf.8; utility has been - updated to use the PCI ID database from the <filename - role="package">misc/pciids</filename> package, if present, - falling back to the PCI ID database in the &os; base - system.</para> - - <para revision="288710" contrib="sponsor" sponsor="&gandi;">A - new utility, &man.sesutil.8;, has been added, which is used - to manage &man.ses.4; devices.</para> + <para> </para> </sect2> <sect2 xml:id="userland-contrib"> <title>Contributed Software</title> - <para revision="286082">The &man.libarchive.3; library has been - updated to properly skip a sparse file entry in a &man.tar.1; - file, which would previously produce errors.</para> - - <para revision="286751">Timezone data files have been updated to - version 2015f.</para> + <para> </para> </sect2> <sect2 xml:id="userland-installer"> @@ -247,10 +223,7 @@ <sect2 xml:id="kernel-bugfix"> <title>Kernel Bug Fixes</title> - <para revision="288167" contrib="sponsor" - sponsor="&multiplay;">The &man.kqueue.2; system call has been - updated to handle write events to files larger than 2 - gigabytes.</para> + <para></para> </sect2> <sect2 xml:id="kernel-config"> @@ -262,10 +235,7 @@ <sect2 xml:id="kernel-sysctl"> <title>System Tuning and Controls</title> - <para revision="287037">The &man.uart.4; driver has been - updated to allow tuning pulses per second captured in the - CTS line during runtime, whereas previously only the DCD line - could be used without rebuilding the kernel.</para> + <para></para> </sect2> </sect1> @@ -284,12 +254,7 @@ <sect2 xml:id="drivers-storage"> <title>Storage Drivers</title> - <para revision="288732" contrib="sponsor" sponsor="&ix;">The - <acronym>CTL</acronym> High Availability implementation has - been rewritten.</para> - - <para revision="288810">The &man.ctl.4; driver has been updated - to support CD-ROM and removable devices.</para> + <para></para> </sect2> <sect2 xml:id="drivers-network"> @@ -316,9 +281,7 @@ <sect2 xml:id="hardware-virtualization"> <title>Virtualization Support</title> - <para revision="287802">The &man.xen.4; driver has been updated - to include support for <literal>blkif</literal> indirect - segment I/O.</para> + <para></para> </sect2> <sect2 xml:id="hardware-arm"> @@ -349,11 +312,7 @@ <sect2 xml:id="storage-zfs"> <title>ZFS</title> - <para revision="287665" contrib="sponsor" - sponsor="&clusterhq;">The &man.zfs.8; <literal>l2arc</literal> - code has been updated to take <literal>ashift</literal> into - account when gathering buffers to be written to the - <literal>l2arc</literal> device.</para> + <para></para> </sect2> <sect2 xml:id="storage-geom"> diff --git a/release/doc/share/xml/catalog.xml b/release/doc/share/xml/catalog.xml index 74f8ccd..51ee552 100644 --- a/release/doc/share/xml/catalog.xml +++ b/release/doc/share/xml/catalog.xml @@ -9,5 +9,8 @@ <public publicId="-//FreeBSD//ENTITIES Release Specification//EN" uri="release.ent"/> <public publicId="-//FreeBSD//ENTITIES Sponsor Specification//EN" uri="sponsor.ent"/> <public publicId="-//FreeBSD//ENTITIES Vendor Specification//EN" uri="vendor.ent"/> + <!-- XXHRS temporarily defined --> + <public publicId="-//FreeBSD//ENTITIES Security Advisory List//EN" uri="security.xml"/> + <public publicId="-//FreeBSD//ENTITIES Errata List//EN" uri="errata.xml"/> <public publicId="-//FreeBSD//ENTITIES Auto Generated Device Lists//EN" uri="dev-auto.ent"/> </catalog> diff --git a/release/doc/share/xml/errata.xml b/release/doc/share/xml/errata.xml index b476244..30d5fc3 100644 --- a/release/doc/share/xml/errata.xml +++ b/release/doc/share/xml/errata.xml @@ -19,98 +19,7 @@ <tbody> <row> - <entry><link - xlink:href="&security.url;/FreeBSD-EN-15:11.toolchain.asc">FreeBSD-EN-15:11.toolchain</link></entry> - <entry>18 August 2015</entry> - <entry><para>Fix &man.make.1; syntax errors when upgrading - from &os; 9.x and earlier.</para></entry> - </row> - - <row> - <entry><link - xlink:href="&security.url;/FreeBSD-EN-15:12.netstat.asc">FreeBSD-EN-15:12.netstat</link></entry> - <entry>18 August 2015</entry> - <entry><para>Fix incorrect &man.netstat.1; data handling on - 32-bit systems.</para></entry> - </row> - - <row> - <entry><link - xlink:href="&security.url;/FreeBSD-EN-15:13.vidcontrol.asc">FreeBSD-EN-15:13.vidcontrol</link></entry> - <entry>18 August 2015</entry> - <entry><para>Allow size argument to &man.vidcontrol.1; for - &man.syscons.4;.</para></entry> - </row> - - <row> - <entry><link - xlink:href="&security.url;/FreeBSD-EN-15:15.pkg.asc">FreeBSD-EN-15:15.pkg</link></entry> - <entry>25 August 2015</entry> - <entry><para>Insufficient check of supported &man.pkg.7; - signature methods.</para></entry> - </row> - - <row> - <entry><link - xlink:href="&security.url;/FreeBSD-EN-15:16.pw.asc">FreeBSD-EN-15:16.pw</link></entry> - <entry>16 September 2015</entry> - <entry><para>Fix &man.pw.8; regression when creating numeric - users or groups.</para></entry> - </row> - - <row> - <entry><link - xlink:href="&security.url;/FreeBSD-EN-15:17.libc.asc">FreeBSD-EN-15:17.libc</link></entry> - <entry>16 September 2015</entry> - <entry><para>Fix libc handling of signals for multi-threaded - processes.</para></entry> - </row> - - <row> - <entry><link - xlink:href="&security.url;/FreeBSD-EN-15:18.pkg.asc">FreeBSD-EN-15:18.pkg</link></entry> - <entry>16 September 2015</entry> - <entry><para>Implement <literal>pubkey</literal> support for - &man.pkg.7; bootstrap.</para></entry> - </row> - - <row> - <entry><link - xlink:href="&security.url;/FreeBSD-EN-15:19.kqueue.asc">FreeBSD-EN-15:19.kqueue</link></entry> - <entry>4 November 2015</entry> - <entry><para>&man.kqueue.2; write events never fire for files - larger than 2GB.</para></entry> - </row> - - <row> - <entry><link - xlink:href="&security.url;/FreeBSD-EN-15:20.vm.asc">FreeBSD-EN-15:20.vm</link></entry> - <entry>4 November 2015</entry> - <entry><para>Applications exiting due to segmentation - violation on a correct memory address.</para></entry> - </row> - - <row> - <entry><link - xlink:href="&security.url;/FreeBSD-EN-16:01.filemon.asc">FreeBSD-EN-16:01.filemon</link></entry> - <entry>14 January 2016</entry> - <entry><para><application>bmake</application> and - &man.filemon.4; stability issues.</para></entry> - </row> - - <row> - <entry><link - xlink:href="&security.url;/FreeBSD-EN-16:02.pf.asc">FreeBSD-EN-16:02.pf</link></entry> - <entry>14 January 2016</entry> - <entry><para>Invalid TCP checksum issue.</para></entry> - </row> - - <row> - <entry><link - xlink:href="&security.url;/FreeBSD-EN-16:03.yplib.asc">FreeBSD-EN-16:03.yplib</link></entry> - <entry>14 January 2016</entry> - <entry><para><application>YP/NIS</application> library - bug.</para></entry> + <entry><para></para></entry> </row> </tbody> </tgroup> diff --git a/release/doc/share/xml/release.ent b/release/doc/share/xml/release.ent index 8a14e5b..75ef58d 100644 --- a/release/doc/share/xml/release.ent +++ b/release/doc/share/xml/release.ent @@ -6,23 +6,23 @@ <!-- Version of the OS we're describing. This needs to be updated with each new release. --> -<!ENTITY release.current "10.2-STABLE"> +<!ENTITY release.current "10.3-STABLE"> <!-- The previous version used for comparison in the "What's New" section. For -CURRENT, we might point back to the last branchpoint. --> -<!ENTITY release.prev "10.2-RELEASE"> +<!ENTITY release.prev "10.3-RELEASE"> <!-- The previous stable release, useful for pointing user's at the release they SHOULD be running if they don't want the bleeding edge. --> -<!ENTITY release.prev.stable "10.1-RELEASE"> +<!ENTITY release.prev.stable "10.2-RELEASE"> <!-- The next version to be released, usually used for snapshots. --> <!ENTITY release.next "10.3-RELEASE"> <!-- The name of this branch. --> -<!ENTITY release.branch "10.2-STABLE"> +<!ENTITY release.branch "10.3-STABLE"> <!-- The URL for obtaining this version of FreeBSD. --> <!ENTITY release.url "https://www.FreeBSD.org/snapshots/"> diff --git a/release/doc/share/xml/security.xml b/release/doc/share/xml/security.xml index f1c4249..6ddefc1 100644 --- a/release/doc/share/xml/security.xml +++ b/release/doc/share/xml/security.xml @@ -19,116 +19,7 @@ <tbody> <row> - <entry><link - xlink:href="&security.url;/FreeBSD-SA-15:20.expat.asc">FreeBSD-SA-15:20.expat</link></entry> - <entry>18 August 2015</entry> - <entry><para>Fix multiple integer overflows in - &man.libbsdxml.3;.</para></entry> - </row> - - <row> - <entry><link - xlink:href="&security.url;/FreeBSD-SA-15:22.openssh.asc">FreeBSD-SA-15:22.openssh</link></entry> - <entry>25 August 2015</entry> - <entry><para>Multiple vulnerabilities</para></entry> - </row> - - <row> - <entry><link - xlink:href="&security.url;/FreeBSD-SA-15:24.rpcbind.asc">FreeBSD-SA-15:24.rpcbind</link></entry> - <entry>29 September 2015</entry> - <entry><para>Remote denial of service</para></entry> - </row> - - <row> - <entry><link - xlink:href="&security.url;/FreeBSD-SA-15:25.ntp.asc">FreeBSD-SA-15:25.ntp</link></entry> - <entry>26 October 2015</entry> - <entry><para>Multiple vulnerabilities</para></entry> - </row> - - <row> - <entry><link - xlink:href="&security.url;/FreeBSD-SA-15:26.openssl.asc">FreeBSD-SA-15:26.openssl</link></entry> - <entry>5 December 2015</entry> - <entry><para>Multiple vulnerabilities</para></entry> - </row> - - <row> - <entry><link - xlink:href="&security.url;/FreeBSD-SA-16:01.sctp.asc">FreeBSD-SA-16:01.sctp</link></entry> - <entry>14 January 2016</entry> - <entry><para>ICMPv6 error message vulnerability</para></entry> - </row> - - <row> - <entry><link - xlink:href="&security.url;/FreeBSD-SA-16:02.ntp.asc">FreeBSD-SA-16:02.ntp</link></entry> - <entry>14 January 2016</entry> - <entry><para>Panic threshold bypass - vulnerability</para></entry> - </row> - - <row> - <entry><link - xlink:href="&security.url;/FreeBSD-SA-16:03.linux.asc">FreeBSD-SA-16:03.linux</link></entry> - <entry>14 January 2016</entry> - <entry><para>Incorrect <literal>futex</literal> - handling</para></entry> - </row> - - <row> - <entry><link - xlink:href="&security.url;/FreeBSD-SA-16:04.linux.asc">FreeBSD-SA-16:04.linux</link></entry> - <entry>14 January 2016</entry> - <entry><para>&man.setgroups.2; system call - vulnerability</para></entry> - </row> - - <row> - <entry><link - xlink:href="&security.url;/FreeBSD-SA-16:05.tcp.asc">FreeBSD-SA-16:05.tcp</link></entry> - <entry>14 January 2016</entry> - <entry><para>MD5 signature denial of service</para></entry> - </row> - - <row> - <entry><link - xlink:href="&security.url;/FreeBSD-SA-16:06.bsnmpd.asc">FreeBSD-SA-16:06.bsnmpd</link></entry> - <entry>14 January 2016</entry> - <entry><para>Insecure default configuration file - permissions</para></entry> - </row> - - <row> - <entry><link - xlink:href="&security.url;/FreeBSD-SA-16:07.openssh.asc">FreeBSD-SA-16:07.openssh</link></entry> - <entry>14 January 2016</entry> - <entry><para><application>OpenSSH</application> client - information leak</para></entry> - </row> - - <row> - <entry><link - xlink:href="&security.url;/FreeBSD-SA-16:09.ntp.asc">FreeBSD-SA-16:09.ntp</link></entry> - <entry>27 January 2016</entry> - <entry><para>Multiple vulnerabilities.</para></entry> - </row> - - <row> - <entry><link - xlink:href="&security.url;/FreeBSD-SA-16:10.linux.asc">FreeBSD-SA-16:10.linux</link></entry> - <entry>27 January 2016</entry> - <entry><para>&man.issetugid.2; system call - vulnerability.</para></entry> - </row> - - <row> - <entry><link - xlink:href="&security.url;/FreeBSD-SA-16:11.openssl.asc">FreeBSD-SA-16:11.openssl</link></entry> - <entry>30 January 2016</entry> - <entry><para>SSLv2 cipher suite downgrade - vulnerability.</para></entry> + <entry><para></para></entry> </row> </tbody> </tgroup> diff --git a/sbin/ifconfig/ifclone.c b/sbin/ifconfig/ifclone.c index 6a60d41..0eda438 100644 --- a/sbin/ifconfig/ifclone.c +++ b/sbin/ifconfig/ifclone.c @@ -144,11 +144,12 @@ ifclonecreate(int s, void *arg) } /* - * If we get a different name back than we put in, print it. + * If we get a different name back than we put in, update record and + * indicate it should be printed later. */ if (strncmp(name, ifr.ifr_name, sizeof(name)) != 0) { strlcpy(name, ifr.ifr_name, sizeof(name)); - printf("%s\n", name); + printifname = 1; } } diff --git a/sbin/ifconfig/ifconfig.c b/sbin/ifconfig/ifconfig.c index 1b89e67..c3a47b7 100644 --- a/sbin/ifconfig/ifconfig.c +++ b/sbin/ifconfig/ifconfig.c @@ -93,6 +93,7 @@ int clearaddr; int newaddr = 1; int verbose; int noload; +int printifname = 0; int supmedia = 0; int printkeys = 0; /* Print keying material for interfaces. */ @@ -108,6 +109,8 @@ static struct afswtch *af_getbyname(const char *name); static struct afswtch *af_getbyfamily(int af); static void af_other_status(int); +void printifnamemaybe(void); + static struct option *opts = NULL; void @@ -141,6 +144,12 @@ usage(void) exit(1); } +void printifnamemaybe() +{ + if (printifname) + printf("%s\n", name); +} + int main(int argc, char *argv[]) { @@ -156,6 +165,12 @@ main(int argc, char *argv[]) size_t iflen; all = downonly = uponly = namesonly = noload = verbose = 0; + + /* + * Ensure we print interface name when expected to, + * even if we terminate early due to error. + */ + atexit(printifnamemaybe); /* Parse leading line options */ strlcpy(options, "adklmnuv", sizeof(options)); @@ -873,6 +888,8 @@ setifname(const char *val, int dummy __unused, int s, const struct afswtch *afp) { char *newname; + + strncpy(ifr.ifr_name, name, sizeof(ifr.ifr_name)); newname = strdup(val); if (newname == NULL) @@ -882,6 +899,7 @@ setifname(const char *val, int dummy __unused, int s, free(newname); err(1, "ioctl SIOCSIFNAME (set name)"); } + printifname = 1; strlcpy(name, newname, sizeof(name)); free(newname); } @@ -893,6 +911,8 @@ setifdescr(const char *val, int dummy __unused, int s, { char *newdescr; + strncpy(ifr.ifr_name, name, sizeof(ifr.ifr_name)); + ifr.ifr_buffer.length = strlen(val) + 1; if (ifr.ifr_buffer.length == 1) { ifr.ifr_buffer.buffer = newdescr = NULL; diff --git a/sbin/ifconfig/ifconfig.h b/sbin/ifconfig/ifconfig.h index 6df9acf..ada224f 100644 --- a/sbin/ifconfig/ifconfig.h +++ b/sbin/ifconfig/ifconfig.h @@ -133,6 +133,7 @@ extern int supmedia; extern int printkeys; extern int newaddr; extern int verbose; +extern int printifname; void setifcap(const char *, int value, int s, const struct afswtch *); diff --git a/sys/boot/common/load_elf_obj.c b/sys/boot/common/load_elf_obj.c index 626f2d9..b983ecb 100644 --- a/sys/boot/common/load_elf_obj.c +++ b/sys/boot/common/load_elf_obj.c @@ -221,6 +221,9 @@ __elfN(obj_loadimage)(struct preloaded_file *fp, elf_file_t ef, u_int64_t off) switch (shdr[i].sh_type) { case SHT_PROGBITS: case SHT_NOBITS: +#if defined(__i386__) || defined(__amd64__) + case SHT_AMD64_UNWIND: +#endif lastaddr = roundup(lastaddr, shdr[i].sh_addralign); shdr[i].sh_addr = (Elf_Addr)lastaddr; lastaddr += shdr[i].sh_size; diff --git a/sys/cam/ata/ata_all.c b/sys/cam/ata/ata_all.c index d836e42..d5220e8 100644 --- a/sys/cam/ata/ata_all.c +++ b/sys/cam/ata/ata_all.c @@ -75,13 +75,18 @@ ata_op_string(struct ata_cmd *cmd) if (cmd->control & 0x04) return ("SOFT_RESET"); switch (cmd->command) { - case 0x00: return ("NOP"); + case 0x00: + switch (cmd->features) { + case 0x00: return ("NOP FLUSHQUEUE"); + case 0x01: return ("NOP AUTOPOLL"); + } + return ("NOP"); case 0x03: return ("CFA_REQUEST_EXTENDED_ERROR"); case 0x06: switch (cmd->features) { - case 0x01: return ("DSM TRIM"); - } - return "DSM"; + case 0x01: return ("DSM TRIM"); + } + return "DSM"; case 0x08: return ("DEVICE_RESET"); case 0x20: return ("READ"); case 0x24: return ("READ48"); @@ -105,6 +110,12 @@ ata_op_string(struct ata_cmd *cmd) case 0x3f: return ("WRITE_LOG_EXT"); case 0x40: return ("READ_VERIFY"); case 0x42: return ("READ_VERIFY48"); + case 0x45: + switch (cmd->features) { + case 0x55: return ("WRITE_UNCORRECTABLE48 PSEUDO"); + case 0xaa: return ("WRITE_UNCORRECTABLE48 FLAGGED"); + } + return "WRITE_UNCORRECTABLE48"; case 0x51: return ("CONFIGURE_STREAM"); case 0x60: return ("READ_FPDMA_QUEUED"); case 0x61: return ("WRITE_FPDMA_QUEUED"); @@ -128,7 +139,18 @@ ata_op_string(struct ata_cmd *cmd) case 0xa0: return ("PACKET"); case 0xa1: return ("ATAPI_IDENTIFY"); case 0xa2: return ("SERVICE"); - case 0xb0: return ("SMART"); + case 0xb0: + switch(cmd->features) { + case 0xd0: return ("SMART READ ATTR VALUES"); + case 0xd1: return ("SMART READ ATTR THRESHOLDS"); + case 0xd3: return ("SMART SAVE ATTR VALUES"); + case 0xd4: return ("SMART EXECUTE OFFLINE IMMEDIATE"); + case 0xd5: return ("SMART READ LOG DATA"); + case 0xd8: return ("SMART ENABLE OPERATION"); + case 0xd9: return ("SMART DISABLE OPERATION"); + case 0xda: return ("SMART RETURN STATUS"); + } + return ("SMART"); case 0xb1: return ("DEVICE CONFIGURATION"); case 0xc0: return ("CFA_ERASE"); case 0xc4: return ("READ_MUL"); @@ -158,18 +180,22 @@ ata_op_string(struct ata_cmd *cmd) case 0xed: return ("MEDIA_EJECT"); case 0xef: switch (cmd->features) { - case 0x03: return ("SETFEATURES SET TRANSFER MODE"); - case 0x02: return ("SETFEATURES ENABLE WCACHE"); - case 0x82: return ("SETFEATURES DISABLE WCACHE"); - case 0x06: return ("SETFEATURES ENABLE PUIS"); - case 0x86: return ("SETFEATURES DISABLE PUIS"); - case 0x07: return ("SETFEATURES SPIN-UP"); - case 0x10: return ("SETFEATURES ENABLE SATA FEATURE"); - case 0x90: return ("SETFEATURES DISABLE SATA FEATURE"); - case 0xaa: return ("SETFEATURES ENABLE RCACHE"); - case 0x55: return ("SETFEATURES DISABLE RCACHE"); - } - return "SETFEATURES"; + case 0x03: return ("SETFEATURES SET TRANSFER MODE"); + case 0x02: return ("SETFEATURES ENABLE WCACHE"); + case 0x82: return ("SETFEATURES DISABLE WCACHE"); + case 0x06: return ("SETFEATURES ENABLE PUIS"); + case 0x86: return ("SETFEATURES DISABLE PUIS"); + case 0x07: return ("SETFEATURES SPIN-UP"); + case 0x10: return ("SETFEATURES ENABLE SATA FEATURE"); + case 0x90: return ("SETFEATURES DISABLE SATA FEATURE"); + case 0xaa: return ("SETFEATURES ENABLE RCACHE"); + case 0x55: return ("SETFEATURES DISABLE RCACHE"); + case 0x5d: return ("SETFEATURES ENABLE RELIRQ"); + case 0xdd: return ("SETFEATURES DISABLE RELIRQ"); + case 0x5e: return ("SETFEATURES ENABLE SRVIRQ"); + case 0xde: return ("SETFEATURES DISABLE SRVIRQ"); + } + return "SETFEATURES"; case 0xf1: return ("SECURITY_SET_PASSWORD"); case 0xf2: return ("SECURITY_UNLOCK"); case 0xf3: return ("SECURITY_ERASE_PREPARE"); diff --git a/sys/cam/ctl/ctl_frontend_iscsi.c b/sys/cam/ctl/ctl_frontend_iscsi.c index 399e141..b844be6 100644 --- a/sys/cam/ctl/ctl_frontend_iscsi.c +++ b/sys/cam/ctl/ctl_frontend_iscsi.c @@ -2369,6 +2369,7 @@ cfiscsi_datamove_in(union ctl_io *io) bhsdi->bhsdi_opcode = ISCSI_BHS_OPCODE_SCSI_DATA_IN; bhsdi->bhsdi_initiator_task_tag = bhssc->bhssc_initiator_task_tag; + bhsdi->bhsdi_target_transfer_tag = 0xffffffff; bhsdi->bhsdi_datasn = htonl(PDU_EXPDATASN(request)); PDU_EXPDATASN(request)++; bhsdi->bhsdi_buffer_offset = htonl(buffer_offset); diff --git a/sys/dev/ata/ata-all.c b/sys/dev/ata/ata-all.c index 80bb804..8313e8c 100644 --- a/sys/dev/ata/ata-all.c +++ b/sys/dev/ata/ata-all.c @@ -497,7 +497,18 @@ ata_cmd2str(struct ata_request *request) } } else { switch (request->u.ata.command) { - case 0x00: return ("NOP"); + case 0x00: + switch (request->u.ata.feature) { + case 0x00: return ("NOP FLUSHQUEUE"); + case 0x01: return ("NOP AUTOPOLL"); + } + return ("NOP"); + case 0x03: return ("CFA_REQUEST_EXTENDED_ERROR"); + case 0x06: + switch (request->u.ata.feature) { + case 0x01: return ("DSM TRIM"); + } + return "DSM"; case 0x08: return ("DEVICE_RESET"); case 0x20: return ("READ"); case 0x24: return ("READ48"); @@ -505,18 +516,65 @@ ata_cmd2str(struct ata_request *request) case 0x26: return ("READ_DMA_QUEUED48"); case 0x27: return ("READ_NATIVE_MAX_ADDRESS48"); case 0x29: return ("READ_MUL48"); + case 0x2a: return ("READ_STREAM_DMA48"); + case 0x2b: return ("READ_STREAM48"); + case 0x2f: return ("READ_LOG_EXT"); case 0x30: return ("WRITE"); case 0x34: return ("WRITE48"); case 0x35: return ("WRITE_DMA48"); case 0x36: return ("WRITE_DMA_QUEUED48"); case 0x37: return ("SET_MAX_ADDRESS48"); case 0x39: return ("WRITE_MUL48"); + case 0x3a: return ("WRITE_STREAM_DMA48"); + case 0x3b: return ("WRITE_STREAM48"); + case 0x3d: return ("WRITE_DMA_FUA48"); + case 0x3e: return ("WRITE_DMA_QUEUED_FUA48"); + case 0x3f: return ("WRITE_LOG_EXT"); + case 0x40: return ("READ_VERIFY"); + case 0x42: return ("READ_VERIFY48"); + case 0x45: + switch (request->u.ata.feature) { + case 0x55: return ("WRITE_UNCORRECTABLE48 PSEUDO"); + case 0xaa: return ("WRITE_UNCORRECTABLE48 FLAGGED"); + } + return "WRITE_UNCORRECTABLE48"; + case 0x51: return ("CONFIGURE_STREAM"); + case 0x60: return ("READ_FPDMA_QUEUED"); + case 0x61: return ("WRITE_FPDMA_QUEUED"); + case 0x63: return ("NCQ_NON_DATA"); + case 0x64: return ("SEND_FPDMA_QUEUED"); + case 0x65: return ("RECEIVE_FPDMA_QUEUED"); + case 0x67: + if (request->u.ata.feature == 0xec) + return ("SEP_ATTN IDENTIFY"); + switch (request->u.ata.lba) { + case 0x00: return ("SEP_ATTN READ BUFFER"); + case 0x02: return ("SEP_ATTN RECEIVE DIAGNOSTIC RESULTS"); + case 0x80: return ("SEP_ATTN WRITE BUFFER"); + case 0x82: return ("SEP_ATTN SEND DIAGNOSTIC"); + } + return ("SEP_ATTN"); case 0x70: return ("SEEK"); - case 0xa0: return ("PACKET_CMD"); + case 0x87: return ("CFA_TRANSLATE_SECTOR"); + case 0x90: return ("EXECUTE_DEVICE_DIAGNOSTIC"); + case 0x92: return ("DOWNLOAD_MICROCODE"); + case 0xa0: return ("PACKET"); case 0xa1: return ("ATAPI_IDENTIFY"); case 0xa2: return ("SERVICE"); - case 0xb0: return ("SMART"); - case 0xc0: return ("CFA ERASE"); + case 0xb0: + switch(request->u.ata.feature) { + case 0xd0: return ("SMART READ ATTR VALUES"); + case 0xd1: return ("SMART READ ATTR THRESHOLDS"); + case 0xd3: return ("SMART SAVE ATTR VALUES"); + case 0xd4: return ("SMART EXECUTE OFFLINE IMMEDIATE"); + case 0xd5: return ("SMART READ LOG DATA"); + case 0xd8: return ("SMART ENABLE OPERATION"); + case 0xd9: return ("SMART DISABLE OPERATION"); + case 0xda: return ("SMART RETURN STATUS"); + } + return ("SMART"); + case 0xb1: return ("DEVICE CONFIGURATION"); + case 0xc0: return ("CFA_ERASE"); case 0xc4: return ("READ_MUL"); case 0xc5: return ("WRITE_MUL"); case 0xc6: return ("SET_MULTI"); @@ -524,22 +582,48 @@ ata_cmd2str(struct ata_request *request) case 0xc8: return ("READ_DMA"); case 0xca: return ("WRITE_DMA"); case 0xcc: return ("WRITE_DMA_QUEUED"); + case 0xcd: return ("CFA_WRITE_MULTIPLE_WITHOUT_ERASE"); + case 0xce: return ("WRITE_MUL_FUA48"); + case 0xd1: return ("CHECK_MEDIA_CARD_TYPE"); + case 0xda: return ("GET_MEDIA_STATUS"); + case 0xde: return ("MEDIA_LOCK"); + case 0xdf: return ("MEDIA_UNLOCK"); + case 0xe0: return ("STANDBY_IMMEDIATE"); + case 0xe1: return ("IDLE_IMMEDIATE"); + case 0xe2: return ("STANDBY"); + case 0xe3: return ("IDLE"); + case 0xe4: return ("READ_BUFFER/PM"); + case 0xe5: return ("CHECK_POWER_MODE"); case 0xe6: return ("SLEEP"); case 0xe7: return ("FLUSHCACHE"); + case 0xe8: return ("WRITE_PM"); case 0xea: return ("FLUSHCACHE48"); case 0xec: return ("ATA_IDENTIFY"); + case 0xed: return ("MEDIA_EJECT"); case 0xef: switch (request->u.ata.feature) { case 0x03: return ("SETFEATURES SET TRANSFER MODE"); case 0x02: return ("SETFEATURES ENABLE WCACHE"); case 0x82: return ("SETFEATURES DISABLE WCACHE"); + case 0x06: return ("SETFEATURES ENABLE PUIS"); + case 0x86: return ("SETFEATURES DISABLE PUIS"); + case 0x07: return ("SETFEATURES SPIN-UP"); + case 0x10: return ("SETFEATURES ENABLE SATA FEATURE"); + case 0x90: return ("SETFEATURES DISABLE SATA FEATURE"); case 0xaa: return ("SETFEATURES ENABLE RCACHE"); case 0x55: return ("SETFEATURES DISABLE RCACHE"); + case 0x5d: return ("SETFEATURES ENABLE RELIRQ"); + case 0xdd: return ("SETFEATURES DISABLE RELIRQ"); + case 0x5e: return ("SETFEATURES ENABLE SRVIRQ"); + case 0xde: return ("SETFEATURES DISABLE SRVIRQ"); } - sprintf(buffer, "SETFEATURES 0x%02x", - request->u.ata.feature); - return (buffer); - case 0xf5: return ("SECURITY_FREE_LOCK"); + return "SETFEATURES"; + case 0xf1: return ("SECURITY_SET_PASSWORD"); + case 0xf2: return ("SECURITY_UNLOCK"); + case 0xf3: return ("SECURITY_ERASE_PREPARE"); + case 0xf4: return ("SECURITY_ERASE_UNIT"); + case 0xf5: return ("SECURITY_FREEZE_LOCK"); + case 0xf6: return ("SECURITY_DISABLE_PASSWORD"); case 0xf8: return ("READ_NATIVE_MAX_ADDRESS"); case 0xf9: return ("SET_MAX_ADDRESS"); } diff --git a/sys/dev/usb/controller/xhci.c b/sys/dev/usb/controller/xhci.c index 3853ed1..18f871e 100644 --- a/sys/dev/usb/controller/xhci.c +++ b/sys/dev/usb/controller/xhci.c @@ -2363,6 +2363,8 @@ xhci_configure_endpoint(struct usb_device *udev, /* store endpoint mode */ pepext->trb_ep_mode = ep_mode; + /* store bMaxPacketSize for control endpoints */ + pepext->trb_ep_maxp = edesc->wMaxPacketSize[0]; usb_pc_cpu_flush(pepext->page_cache); if (ep_mode == USB_EP_MODE_STREAMS) { @@ -2909,6 +2911,17 @@ xhci_transfer_insert(struct usb_xfer *xfer) return (USB_ERR_NOMEM); } + /* check if bMaxPacketSize changed */ + if (xfer->flags_int.control_xfr != 0 && + pepext->trb_ep_maxp != xfer->endpoint->edesc->wMaxPacketSize[0]) { + + DPRINTFN(8, "Reconfigure control endpoint\n"); + + /* force driver to reconfigure endpoint */ + pepext->trb_halted = 1; + pepext->trb_running = 0; + } + /* check for stopped condition, after putting transfer on interrupt queue */ if (pepext->trb_running == 0) { struct xhci_softc *sc = XHCI_BUS2SC(xfer->xroot->bus); diff --git a/sys/dev/usb/controller/xhci.h b/sys/dev/usb/controller/xhci.h index ac21c0f..af5b913 100644 --- a/sys/dev/usb/controller/xhci.h +++ b/sys/dev/usb/controller/xhci.h @@ -383,6 +383,7 @@ struct xhci_endpoint_ext { uint8_t trb_halted; uint8_t trb_running; uint8_t trb_ep_mode; + uint8_t trb_ep_maxp; }; enum { diff --git a/sys/dev/usb/net/if_smsc.c b/sys/dev/usb/net/if_smsc.c index c8f2202..34c3ae9 100644 --- a/sys/dev/usb/net/if_smsc.c +++ b/sys/dev/usb/net/if_smsc.c @@ -1341,7 +1341,7 @@ smsc_chip_init(struct smsc_softc *sc) /* Reset the PHY */ smsc_write_reg(sc, SMSC_PM_CTRL, SMSC_PM_CTRL_PHY_RST); - if ((err = smsc_wait_for_bits(sc, SMSC_PM_CTRL, SMSC_PM_CTRL_PHY_RST) != 0)) { + if ((err = smsc_wait_for_bits(sc, SMSC_PM_CTRL, SMSC_PM_CTRL_PHY_RST)) != 0) { smsc_warn_printf(sc, "timed-out waiting for phy reset to complete\n"); goto init_failed; } diff --git a/sys/dev/usb/usb_hid.c b/sys/dev/usb/usb_hid.c index e6361a6..dc0ce99 100644 --- a/sys/dev/usb/usb_hid.c +++ b/sys/dev/usb/usb_hid.c @@ -354,7 +354,8 @@ hid_get_item(struct hid_data *s, struct hid_item *h) /* range check usage count */ if (c->loc.count > 255) { DPRINTFN(0, "Number of " - "items truncated to 255\n"); + "items(%u) truncated to 255\n", + (unsigned)(c->loc.count)); s->ncount = 255; } else s->ncount = c->loc.count; diff --git a/sys/kern/link_elf_obj.c b/sys/kern/link_elf_obj.c index 453d8ce..dc13283 100644 --- a/sys/kern/link_elf_obj.c +++ b/sys/kern/link_elf_obj.c @@ -257,6 +257,9 @@ link_elf_link_preload(linker_class_t cls, const char *filename, switch (shdr[i].sh_type) { case SHT_PROGBITS: case SHT_NOBITS: +#ifdef __amd64__ + case SHT_AMD64_UNWIND: +#endif ef->nprogtab++; break; case SHT_SYMTAB: @@ -327,9 +330,16 @@ link_elf_link_preload(linker_class_t cls, const char *filename, switch (shdr[i].sh_type) { case SHT_PROGBITS: case SHT_NOBITS: +#ifdef __amd64__ + case SHT_AMD64_UNWIND: +#endif ef->progtab[pb].addr = (void *)shdr[i].sh_addr; if (shdr[i].sh_type == SHT_PROGBITS) ef->progtab[pb].name = "<<PROGBITS>>"; +#ifdef __amd64__ + else if (shdr[i].sh_type == SHT_AMD64_UNWIND) + ef->progtab[pb].name = "<<UNWIND>>"; +#endif else ef->progtab[pb].name = "<<NOBITS>>"; ef->progtab[pb].size = shdr[i].sh_size; @@ -553,6 +563,9 @@ link_elf_load_file(linker_class_t cls, const char *filename, switch (shdr[i].sh_type) { case SHT_PROGBITS: case SHT_NOBITS: +#ifdef __amd64__ + case SHT_AMD64_UNWIND: +#endif ef->nprogtab++; break; case SHT_SYMTAB: @@ -659,6 +672,9 @@ link_elf_load_file(linker_class_t cls, const char *filename, switch (shdr[i].sh_type) { case SHT_PROGBITS: case SHT_NOBITS: +#ifdef __amd64__ + case SHT_AMD64_UNWIND: +#endif alignmask = shdr[i].sh_addralign - 1; mapsize += alignmask; mapsize &= ~alignmask; @@ -726,6 +742,9 @@ link_elf_load_file(linker_class_t cls, const char *filename, switch (shdr[i].sh_type) { case SHT_PROGBITS: case SHT_NOBITS: +#ifdef __amd64__ + case SHT_AMD64_UNWIND: +#endif alignmask = shdr[i].sh_addralign - 1; mapbase += alignmask; mapbase &= ~alignmask; @@ -734,6 +753,10 @@ link_elf_load_file(linker_class_t cls, const char *filename, ef->shstrtab + shdr[i].sh_name; else if (shdr[i].sh_type == SHT_PROGBITS) ef->progtab[pb].name = "<<PROGBITS>>"; +#ifdef __amd64__ + else if (shdr[i].sh_type == SHT_AMD64_UNWIND) + ef->progtab[pb].name = "<<UNWIND>>"; +#endif else ef->progtab[pb].name = "<<NOBITS>>"; if (ef->progtab[pb].name != NULL && @@ -755,7 +778,11 @@ link_elf_load_file(linker_class_t cls, const char *filename, } ef->progtab[pb].size = shdr[i].sh_size; ef->progtab[pb].sec = i; - if (shdr[i].sh_type == SHT_PROGBITS) { + if (shdr[i].sh_type == SHT_PROGBITS +#ifdef __amd64__ + || shdr[i].sh_type == SHT_AMD64_UNWIND +#endif + ) { error = vn_rdwr(UIO_READ, nd.ni_vp, ef->progtab[pb].addr, shdr[i].sh_size, shdr[i].sh_offset, diff --git a/sys/sys/ata.h b/sys/sys/ata.h index 272b46a..5df610e 100644 --- a/sys/sys/ata.h +++ b/sys/sys/ata.h @@ -368,6 +368,9 @@ struct ata_params { #define ATA_WRITE_LOG_EXT 0x3f #define ATA_READ_VERIFY 0x40 #define ATA_READ_VERIFY48 0x42 +#define ATA_WRITE_UNCORRECTABLE48 0x45 /* write uncorrectable 48bit LBA */ +#define ATA_WU_PSEUDO 0x55 /* pseudo-uncorrectable error */ +#define ATA_WU_FLAGGED 0xaa /* flagged-uncorrectable error */ #define ATA_READ_LOG_DMA_EXT 0x47 /* read log DMA ext - PIO Data-In */ #define ATA_READ_FPDMA_QUEUED 0x60 /* read DMA NCQ */ #define ATA_WRITE_FPDMA_QUEUED 0x61 /* write DMA NCQ */ diff --git a/usr.bin/cap_mkdb/cap_mkdb.c b/usr.bin/cap_mkdb/cap_mkdb.c index bbcedd5..2f8bd96 100644 --- a/usr.bin/cap_mkdb/cap_mkdb.c +++ b/usr.bin/cap_mkdb/cap_mkdb.c @@ -119,7 +119,7 @@ main(int argc, char *argv[]) (void)snprintf(buf, sizeof(buf), "%s.db", capname ? capname : *argv); if ((capname = strdup(buf)) == NULL) errx(1, "strdup failed"); - if ((capdbp = dbopen(capname, O_CREAT | O_TRUNC | O_RDWR | O_SYNC, + if ((capdbp = dbopen(capname, O_CREAT | O_TRUNC | O_RDWR, DEFFILEMODE, DB_HASH, &openinfo)) == NULL) err(1, "%s", buf); diff --git a/usr.sbin/ctld/login.c b/usr.sbin/ctld/login.c index 6ef0e61..7cfc5e0 100644 --- a/usr.sbin/ctld/login.c +++ b/usr.sbin/ctld/login.c @@ -126,15 +126,16 @@ login_receive(struct connection *conn, bool initial) log_errx(1, "received Login PDU with unsupported " "Version-min 0x%x", bhslr->bhslr_version_min); } - if (ISCSI_SNLT(ntohl(bhslr->bhslr_cmdsn), conn->conn_cmdsn)) { - login_send_error(request, 0x02, 0x05); + if (initial == false && + ISCSI_SNLT(ntohl(bhslr->bhslr_cmdsn), conn->conn_cmdsn)) { + login_send_error(request, 0x02, 0x00); log_errx(1, "received Login PDU with decreasing CmdSN: " "was %u, is %u", conn->conn_cmdsn, ntohl(bhslr->bhslr_cmdsn)); } if (initial == false && ntohl(bhslr->bhslr_expstatsn) != conn->conn_statsn) { - login_send_error(request, 0x02, 0x05); + login_send_error(request, 0x02, 0x00); log_errx(1, "received Login PDU with wrong ExpStatSN: " "is %u, should be %u", ntohl(bhslr->bhslr_expstatsn), conn->conn_statsn); diff --git a/usr.sbin/pwd_mkdb/pwd_mkdb.c b/usr.sbin/pwd_mkdb/pwd_mkdb.c index c75804a..9158e61 100644 --- a/usr.sbin/pwd_mkdb/pwd_mkdb.c +++ b/usr.sbin/pwd_mkdb/pwd_mkdb.c @@ -225,14 +225,14 @@ main(int argc, char *argv[]) clean = FILE_INSECURE; cp(buf2, buf, PERM_INSECURE); dp = dbopen(buf, - O_RDWR|O_EXCL|O_SYNC, PERM_INSECURE, DB_HASH, &openinfo); + O_RDWR|O_EXCL, PERM_INSECURE, DB_HASH, &openinfo); if (dp == NULL) error(buf); clean = FILE_SECURE; cp(sbuf2, sbuf, PERM_SECURE); sdp = dbopen(sbuf, - O_RDWR|O_EXCL|O_SYNC, PERM_SECURE, DB_HASH, &openinfo); + O_RDWR|O_EXCL, PERM_SECURE, DB_HASH, &openinfo); if (sdp == NULL) error(sbuf); @@ -289,13 +289,13 @@ main(int argc, char *argv[]) method = 0; } else { dp = dbopen(buf, - O_RDWR|O_CREAT|O_EXCL|O_SYNC, PERM_INSECURE, DB_HASH, &openinfo); + O_RDWR|O_CREAT|O_EXCL, PERM_INSECURE, DB_HASH, &openinfo); if (dp == NULL) error(buf); clean = FILE_INSECURE; sdp = dbopen(sbuf, - O_RDWR|O_CREAT|O_EXCL|O_SYNC, PERM_SECURE, DB_HASH, &openinfo); + O_RDWR|O_CREAT|O_EXCL, PERM_SECURE, DB_HASH, &openinfo); if (sdp == NULL) error(sbuf); clean = FILE_SECURE; diff --git a/usr.sbin/services_mkdb/services_mkdb.c b/usr.sbin/services_mkdb/services_mkdb.c index 9ea66de..c928ea9 100644 --- a/usr.sbin/services_mkdb/services_mkdb.c +++ b/usr.sbin/services_mkdb/services_mkdb.c @@ -141,7 +141,7 @@ main(int argc, char *argv[]) err(1, "Cannot install exit handler"); (void)snprintf(tname, sizeof(tname), "%s.tmp", dbname); - db = dbopen(tname, O_RDWR | O_CREAT | O_EXCL | O_SYNC, + db = dbopen(tname, O_RDWR | O_CREAT | O_EXCL, (S_IRUSR | S_IWUSR | S_IRGRP | S_IROTH), DB_HASH, &hinfo); if (!db) err(1, "Error opening temporary database `%s'", tname); |