lists.openwall.net   lists  /  announce  owl-users  owl-dev  john-users  john-dev  passwdqc-users  yescrypt  popa3d-users  /  oss-security  kernel-hardening  musl  sabotage  tlsify  passwords  /  crypt-dev  xvendor  /  Bugtraq  Full-Disclosure  linux-kernel  linux-netdev  linux-ext4  linux-hardening  linux-cve-announce  PHC 
Open Source and information security mailing list archives
 
Hash Suite: Windows password security audit tool. GUI, reports in PDF.
[<prev] [next>] [thread-next>] [day] [month] [year] [list]
Date:	Sun, 22 Jun 2008 23:55:29 -0700 (PDT)
From:	barry bouwsma <free_beer_for_all@...oo.com>
To:	linux-kernel@...r.kernel.org
Subject: Broken ttusb-dec DVB support since, well, year(s)

Moin moin!

Sorry I'm posting this here rather than to the more specific
linux-dvb@ mailing list where I'd rather this appear, but my
attempts to surbscibe!@! to that list have been rejected, first
as an invalid e-mail, then an insecure e-mail, and I've been
unable to progress further from this throwaway account.

Feel free to redirect/repost this message there if you're a
qualified developer and feel it's more appropriate.


There is a change that was introduced to the file
drivers/media/dvb/ttusb-dec/ttusbdecfe.c
sometime in the not-too-recent past and which resulted in breaking
the support which early 2.6.1x kernels had for my Hauppauge
DEC-3000s DVB-S device.

The particular code (below) checks the value in a register to
decide the tuning status -- hitherto one had to assume the device
was properly tuned and receiving signal and everything.


     60         switch(result[3]) {
     61                 case 1:  /* not tuned yet */
     62                 case 2:  /* no signal/no lock*/
     63                         break;
     64                 case 3:  /* signal found and locked*/
     65                         *status = FE_HAS_SIGNAL | FE_HAS_VITERBI |
     66                         FE_HAS_SYNC | FE_HAS_CARRIER | FE_HAS_LOCK;
     67                         break;
     68                 case 4:
     69                         *status = FE_TIMEDOUT;
     70                         break;
     71                 default:
     72                         pr_info("%s: returned unknown value: %d\n",
     73                                 __func__, result[3]);
     74                         return -EIO;
     75         }


Unfortunately, while this might work for the other flavours of
card (DVB-T?) supported by this code, in the case of my particular
device for DVB-S, the unknown value returned is 0 and does not
change regardless of tuning status.

I haven't checked whether a different register on my particular
device contains a usable value for the above code.

In any case, with my particular device, in order to use more
recent kernels, I've had to add a ``case 0:'' line to the
``case 3:'' seen above in order to get the previous behaviour
where no check was made.


As I don't know the particular model for which the quoted code
was added, I don't know if my device is unique, or whether the
number of DVB-S users of this code is miniscule, as nobody else
has complained that I've seen.

Apologies for not reporting this long ago when first observed,
but I've not had any meaningful Internet access in a long time
to allow me more than just leeching the latest codes.


thanks,
BOUWSMA Barry


      

--
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majordomo@...r.kernel.org
More majordomo info at  http://vger.kernel.org/majordomo-info.html
Please read the FAQ at  http://www.tux.org/lkml/

Powered by blists - more mailing lists

Powered by Openwall GNU/*/Linux Powered by OpenVZ