summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--ChangeLog9
-rw-r--r--src/video_out/video_out_xcbxv.c20
2 files changed, 16 insertions, 13 deletions
diff --git a/ChangeLog b/ChangeLog
index b108cc308..d766e7757 100644
--- a/ChangeLog
+++ b/ChangeLog
@@ -36,11 +36,13 @@ xine-lib (1.1.90) (Unreleased)
XML, and the figures from fig files to SVG files.
xine-lib (1.1.8) (Unreleased)
- * Send a channel changed event to the frontend when receiving the SYNC
+ * Send a channel-changed event to the frontend when receiving the SYNC
string from last.fm streaming server.
* Disable mediaLib support by default (the licenses probably disallow the
distribution of xine binaries built against mediaLib, and on non-VIS
- capable boxes is probably worse than our own code).
+ capable boxes it's probably worse than our own code).
+ * Rename endianness-reading macros so that they don't collide with Solaris
+ system macros. BE_/LE_ are now _X_BE_ and _X_LE_.
xine-lib (1.1.7)
* Support libdca (new name for libdts) by shuffling around the dts.h file.
@@ -56,7 +58,7 @@ xine-lib (1.1.7)
* Ensure that the ffmpeg video image size is properly initialised.
* Allow XxMC to switch back to software decoding; don't deinterlace if it's
not needed for any given frame.
- * Document dvba: MRLs (ATSC with full tuning info).
+ * Document "dvba:" MRLs (ATSC with full tuning info).
* Fix VCD playback (broken since 1.1.4).
* Fix demuxing of FLAC files with ID3v2 tags.
* Use the integer versions of Speex decoding functions, this avoids an
@@ -204,7 +206,6 @@ xine-lib (1.1.4)
* Fix audio/video sync problem with NTSC DVDs (introduced in 1.1.2).
[bugs #1544349 and #1589644]
-
xine-lib (1.1.3)
* Security fixes:
- Heap overflow in libmms (related to CVE-2006-2200)
diff --git a/src/video_out/video_out_xcbxv.c b/src/video_out/video_out_xcbxv.c
index baeeaea8d..21a8b6a39 100644
--- a/src/video_out/video_out_xcbxv.c
+++ b/src/video_out/video_out_xcbxv.c
@@ -845,28 +845,30 @@ static int xv_gui_data_exchange (vo_driver_t *this_gen,
}
static void xv_store_port_attribute(xv_driver_t *this, char *name) {
- xv_portattribute_t *attr;
-
xcb_intern_atom_cookie_t atom_cookie;
xcb_intern_atom_reply_t *atom_reply;
xcb_xv_get_port_attribute_cookie_t get_attribute_cookie;
xcb_xv_get_port_attribute_reply_t *get_attribute_reply;
- attr = (xv_portattribute_t *)malloc( sizeof(xv_portattribute_t) );
- attr->name = strdup(name);
-
pthread_mutex_lock(&this->main_mutex);
- atom_cookie = xcb_intern_atom(this->connection, 0, strlen(attr->name), attr->name);
+ atom_cookie = xcb_intern_atom(this->connection, 0, strlen(name), name);
atom_reply = xcb_intern_atom_reply(this->connection, atom_cookie, NULL);
get_attribute_cookie = xcb_xv_get_port_attribute(this->connection, this->xv_port, atom_reply->atom);
get_attribute_reply = xcb_xv_get_port_attribute_reply(this->connection, get_attribute_cookie, NULL);
- attr->value = get_attribute_reply->value;
free(atom_reply);
- free(get_attribute_reply);
pthread_mutex_unlock(&this->main_mutex);
- xine_list_push_back (this->port_attributes, attr);
+ if (get_attribute_reply != NULL) {
+ xv_portattribute_t *attr;
+
+ attr = (xv_portattribute_t *) malloc(sizeof(xv_portattribute_t));
+ attr->name = strdup(name);
+ attr->value = get_attribute_reply->value;
+ free(get_attribute_reply);
+
+ xine_list_push_back(this->port_attributes, attr);
+ }
}
static void xv_restore_port_attributes(xv_driver_t *this) {