eb44a52c7c
security fix: CVE-2008-0225 - heap-based buffer overflow in libreal (RTSP) also incorporates post release bug fix in WMV decoding from brad, thanks
78 lines
3.2 KiB
Plaintext
78 lines
3.2 KiB
Plaintext
$OpenBSD: patch-src_input_input_vcd_c,v 1.5 2008/01/15 00:36:46 jakemsr Exp $
|
|
--- src/input/input_vcd.c.orig Tue Jan 1 08:30:08 2008
|
|
+++ src/input/input_vcd.c Wed Jan 9 02:04:58 2008
|
|
@@ -92,7 +92,7 @@ typedef struct {
|
|
#if defined (__linux__) || defined(__sun)
|
|
struct cdrom_tochdr tochdr;
|
|
struct cdrom_tocentry tocent[100];
|
|
-#elif defined (__FreeBSD_kernel__)
|
|
+#elif defined (__FreeBSD_kernel__) || defined (__OpenBSD__)
|
|
struct ioc_toc_header tochdr;
|
|
struct cd_toc_entry *tocent;
|
|
off_t cur_sec;
|
|
@@ -117,7 +117,7 @@ typedef struct {
|
|
|
|
int cur_track;
|
|
|
|
-#if defined (__linux__) || defined(__sun) || defined (__FreeBSD_kernel__)
|
|
+#if defined (__linux__) || defined(__sun) || defined (__FreeBSD_kernel__) || defined (__OpenBSD__)
|
|
uint8_t cur_min, cur_sec, cur_frame;
|
|
#endif
|
|
|
|
@@ -177,7 +177,7 @@ static int input_vcd_read_toc (vcd_input_class_t *this
|
|
|
|
return 0;
|
|
}
|
|
-#elif defined (__FreeBSD_kernel__)
|
|
+#elif defined (__FreeBSD_kernel__) || defined (__OpenBSD__)
|
|
static int input_vcd_read_toc (vcd_input_class_t *this, int fd) {
|
|
|
|
struct ioc_read_toc_entry te;
|
|
@@ -393,7 +393,7 @@ static off_t vcd_plugin_read (input_plugin_t *this_gen
|
|
memcpy (buf, data.data, VCDSECTORSIZE); /* FIXME */
|
|
return VCDSECTORSIZE;
|
|
}
|
|
-#elif defined (__FreeBSD_kernel__)
|
|
+#elif defined (__FreeBSD_kernel__) || defined (__OpenBSD__)
|
|
static off_t vcd_plugin_read (input_plugin_t *this_gen,
|
|
char *buf, off_t nlen) {
|
|
vcd_input_plugin_t *this = (vcd_input_plugin_t *) this_gen;
|
|
@@ -531,7 +531,7 @@ static buf_element_t *vcd_plugin_read_block (input_plu
|
|
memcpy (buf->mem, data.data, VCDSECTORSIZE); /* FIXME */
|
|
return buf;
|
|
}
|
|
-#elif defined (__FreeBSD_kernel__)
|
|
+#elif defined (__FreeBSD_kernel__) || defined (__OpenBSD__)
|
|
static buf_element_t *vcd_plugin_read_block (input_plugin_t *this_gen,
|
|
fifo_buffer_t *fifo, off_t nlen) {
|
|
|
|
@@ -690,7 +690,7 @@ static off_t vcd_plugin_seek (input_plugin_t *this_gen
|
|
|
|
return offset ; /* FIXME */
|
|
}
|
|
-#elif defined (__FreeBSD_kernel__)
|
|
+#elif defined (__FreeBSD_kernel__) || defined (__OpenBSD__)
|
|
static off_t vcd_plugin_seek (input_plugin_t *this_gen,
|
|
off_t offset, int origin) {
|
|
|
|
@@ -764,7 +764,7 @@ static off_t vcd_plugin_get_length (input_plugin_t *th
|
|
|
|
return (off_t) 0;
|
|
}
|
|
-#elif defined (__FreeBSD_kernel__)
|
|
+#elif defined (__FreeBSD_kernel__) || defined (__OpenBSD__)
|
|
static off_t vcd_plugin_get_length (input_plugin_t *this_gen) {
|
|
vcd_input_plugin_t *this = (vcd_input_plugin_t *) this_gen;
|
|
off_t len ;
|
|
@@ -859,6 +859,10 @@ static int vcd_plugin_open (input_plugin_t *this_gen)
|
|
this->cur_min = this->cls->tocent[this->cur_track].cdte_addr.msf.minute;
|
|
this->cur_sec = this->cls->tocent[this->cur_track].cdte_addr.msf.second;
|
|
this->cur_frame = this->cls->tocent[this->cur_track].cdte_addr.msf.frame;
|
|
+#elif defined (__OpenBSD__)
|
|
+ this->cur_min = this->cls->tocent[this->cur_track + 1 - this->cls->tochdr.starting_track].addr.msf.minute;
|
|
+ this->cur_sec = this->cls->tocent[this->cur_track + 1 - this->cls->tochdr.starting_track].addr.msf.second;
|
|
+ this->cur_frame = this->cls->tocent[this->cur_track + 1 - this->cls->tochdr.starting_track].addr.msf.frame;
|
|
#elif defined (__FreeBSD_kernel__)
|
|
{
|
|
int bsize = 2352;
|