tv_ctrlpt crashes after detecting a later version of tvcontrol service
SF Bug Tracker #118, Creator: T.Iwamoto From: gon3456@users.sf.net Steps to reproduce: 1. Extracts and build libupnp-1.6.18 $ tar -xjf /path/to/archive/libupnp-1.6.18.tar.bz2 $ cd libupnp-1.6.18 $ ./configure $ make 2. Applies the attached patch and remake. $ patch -p1 < /path/to/patch/libupnp-1.6.18.patch $ make 3. Run tv_device. $ cd upnp/sample $ ./tv_device 4. Run tv_ctrlpt; the tv_ctrlpt crashes soon. $ ./tv_ctrlpt Segmentation fault (core dumped) This is an issue report about the sample program of control point. The tv_ctrlpt crashes after detecting a tvdevice that contains tvcontrol:2 or higher version of tvcontrol service. tv_ctrlpt should detect correctly such devices due to forward compatibility of control points with device. For more information about the compatibility, please refer the following document: DLNA Architectures and Protocols Part 1 2011 December - 7.3.2.1.3 (GUN:GZJXU) The attached patch changes the sample programs as below: - device: changes version of tvcontrol service from 1 to 2. This change may occur in the future. - cp: nothing changed: cp knows version 1 of tvcontrol service only. I know many vendors implements their control points based on the tv_ctrlpt, so I hope to fix this issue ASAP. == From: Yoichi NAKAYAMA SEGV is caused by strcpy with NULL argument. Attached patch will avoid SEGV in strcpy, but there may be other inconsistencies. > I know many vendors implements their control points based on the tv_ctrlpt, I don't think so. I think tv_ctrlpt is just a sample to be used with tv_device. Signed-off-by: Marcelo Roberto Jimenez <mroberto@users.sourceforge.net>
This commit is contained in:
parent
89ad5e6779
commit
1a28e8ff51
41
ChangeLog
41
ChangeLog
@ -2,6 +2,47 @@
|
|||||||
Version 1.6.19
|
Version 1.6.19
|
||||||
*******************************************************************************
|
*******************************************************************************
|
||||||
|
|
||||||
|
2012-06-19 Yoichi NAKAYAMA <yoichi.nakayama(at)gmail.com>
|
||||||
|
|
||||||
|
SF Bug Tracker #118, Creator: T.Iwamoto
|
||||||
|
tv_ctrlpt crashes after detecting a later version of tvcontrol service
|
||||||
|
|
||||||
|
From: gon3456@users.sf.net
|
||||||
|
Steps to reproduce:
|
||||||
|
1. Extracts and build libupnp-1.6.18
|
||||||
|
$ tar -xjf /path/to/archive/libupnp-1.6.18.tar.bz2
|
||||||
|
$ cd libupnp-1.6.18
|
||||||
|
$ ./configure
|
||||||
|
$ make
|
||||||
|
2. Applies the attached patch and remake.
|
||||||
|
$ patch -p1 < /path/to/patch/libupnp-1.6.18.patch
|
||||||
|
$ make
|
||||||
|
3. Run tv_device.
|
||||||
|
$ cd upnp/sample
|
||||||
|
$ ./tv_device
|
||||||
|
4. Run tv_ctrlpt; the tv_ctrlpt crashes soon.
|
||||||
|
$ ./tv_ctrlpt
|
||||||
|
Segmentation fault (core dumped)
|
||||||
|
This is an issue report about the sample program of control point.
|
||||||
|
The tv_ctrlpt crashes after detecting a tvdevice that contains tvcontrol:2 or higher version of tvcontrol service.
|
||||||
|
tv_ctrlpt should detect correctly such devices due to forward compatibility of control points with device.
|
||||||
|
For more information about the compatibility, please refer the following document:
|
||||||
|
DLNA Architectures and Protocols Part 1 2011 December - 7.3.2.1.3 (GUN:GZJXU)
|
||||||
|
The attached patch changes the sample programs as below:
|
||||||
|
- device: changes version of tvcontrol service from 1 to 2. This change may occur in the future.
|
||||||
|
- cp: nothing changed: cp knows version 1 of tvcontrol service only.
|
||||||
|
I know many vendors implements their control points based on the tv_ctrlpt, so I hope to fix this issue ASAP.
|
||||||
|
|
||||||
|
==
|
||||||
|
|
||||||
|
From: Yoichi NAKAYAMA
|
||||||
|
SEGV is caused by strcpy with NULL argument.
|
||||||
|
Attached patch will avoid SEGV in strcpy, but there may be other inconsistencies.
|
||||||
|
|
||||||
|
> I know many vendors implements their control points based on the tv_ctrlpt,
|
||||||
|
|
||||||
|
I don't think so. I think tv_ctrlpt is just a sample to be used with tv_device.
|
||||||
|
|
||||||
2013-10-28 Pino Toscano <pinotree(at)users.sourceforge.net>
|
2013-10-28 Pino Toscano <pinotree(at)users.sourceforge.net>
|
||||||
|
|
||||||
Fix compilation on GNU/Hurd
|
Fix compilation on GNU/Hurd
|
||||||
|
@ -741,6 +741,10 @@ void TvCtrlPointAddDevice(
|
|||||||
deviceNode->device.AdvrTimeOut = expires;
|
deviceNode->device.AdvrTimeOut = expires;
|
||||||
for (service = 0; service < TV_SERVICE_SERVCOUNT;
|
for (service = 0; service < TV_SERVICE_SERVCOUNT;
|
||||||
service++) {
|
service++) {
|
||||||
|
if (serviceId[service] == NULL) {
|
||||||
|
/* not found */
|
||||||
|
continue;
|
||||||
|
}
|
||||||
strcpy(deviceNode->device.TvService[service].
|
strcpy(deviceNode->device.TvService[service].
|
||||||
ServiceId, serviceId[service]);
|
ServiceId, serviceId[service]);
|
||||||
strcpy(deviceNode->device.TvService[service].
|
strcpy(deviceNode->device.TvService[service].
|
||||||
|
Loading…
Reference in New Issue
Block a user