(Apologies to list maintainer, sent from wrong address first try.)
Ian Malone wrote:
 > It seems that oggdec in Fedora 7 produces a wav
 > header followed by lots of zeros.  Building
 > vorbis-tools 1.0.1 from source produces a working
 > oggdec, so I think the problem is in the
 > vorbis-tools package.
 >
 > I can't build vorbis-tools from svn due to some
 > make problems, but I can build the F7 SRPM.
 > There are no differences between the share and
 > oggdec directories, but there are autoconf
 > related changes.  Between 1.0.1 and svn there
 > are lots of changes involving channels.
 > Significantly, ogg123 works.
 >
 > Can anyone confirm this on another platform?
 >
Turns out I can build from trunk on FC6, and
the problem persists.  Appears to be due to
change 11666.
https://trac.xiph.org/changeset/11666
I can see what's happened: outbuf is written, but
only contains data if permute_channels was used.
Index: oggdec/oggdec.c
==================================================================---
oggdec/oggdec.c     (revision 13259)
+++ oggdec/oggdec.c     (working copy)
@@ -255,6 +255,7 @@
      OggVorbis_File vf;
      int bs = 0;
      char buf[8192], outbuf[8192];
+    char *p_outbuf;
      int buflen = 8192;
      unsigned int written = 0;
      int ret;
@@ -324,9 +325,13 @@
          if(channels > 2 && !raw) {
            /* Then permute! */
            permute_channels(buf, outbuf, ret, channels, bits/8);
+         p_outbuf = outbuf;
          }
+       else {
+         p_outbuf = buf;
+       }
-        if(fwrite(outbuf, 1, ret, out) != ret) {
+        if(fwrite(p_outbuf, 1, ret, out) != ret) {
              fprintf(stderr, "Error writing to file: %s\n", 
strerror(errno));
              ov_clear(&vf);
              return 1;