Reject th_info structs with a zero in the frame rate rational.
authorRalph Giles <giles@xiph.org>
Thu, 16 Dec 2010 18:57:36 +0000 (18:57 +0000)
committerRalph Giles <giles@xiph.org>
Thu, 16 Dec 2010 18:57:36 +0000 (18:57 +0000)
commitef3c399f0d33e729bc5a45254899f5543eb48bee
tree249ea6665d815712e0ecee0fbe0f66ef764bd196
parent6804c2b07bb0b4bdab1bdb462c8d57684d8db96c
Reject th_info structs with a zero in the frame rate rational.

The specification says that the frame rate numerator and
denominator MUST both be greater than zero. This wasn't
checked as part of the structure validation code, and in
fact passing a zero value here caused a segfault.

The code now checks for this in oc_state_init() and returns
TH_EINVAL, which is causes th_encode_alloc() and oc_decode_alloc()
to return NULL.

A check for that NULL return is also added to encoder_example.c
to show that it may fail when an invalid th_info parameter is
passed.

svn path=/trunk/theora/; revision=17760
examples/encoder_example.c
lib/state.c