485 Commits

Author SHA1 Message Date
Yoichi NAKAYAMA
0aa8228dac Avoid ambiguous change of SsdpEvent in unique_service_name.
Handle overflow before changing SsdpEvent.
Because the behavior of "snprintf" is platform dependent in such case.
(cherry picked from commit f299d6597a817895f626420f2940aab0388d72eb)
2012-03-14 11:20:13 -03:00
Yoichi NAKAYAMA
4b8982970e SF Bug Tracker id 3502958 - The commit 5944960e prevents a pupnp client (amule) from receiving replies from an IGD device.
Previous change broke the feature. The error of unique_service_name
in ssdp_request_type should be ignored.
This reverts commit 5944960e172a797a9fcc196291f4046cafa7f6ec.
(cherry picked from commit 35819a7a4400f9fc714c1d16b1ee705c4d4df6ed)
2012-03-14 11:20:13 -03:00
Marcelo Roberto Jimenez
ecaf15417a Fix for compiler warning
src/genlib/net/http/httpreadwrite.c: In function
‘http_OpenHttpConnection’:
src/genlib/net/http/httpreadwrite.c:1072:69: warning: unused parameter
‘timeout’
2012-03-13 15:20:28 -03:00
Marcelo Roberto Jimenez
4cd4b1789f Fix for compiler warning
src/genlib/net/sock.c: In function ‘sock_read_write’:
src/genlib/net/sock.c:172:4: warning: conversion to ‘long int’ from
‘size_t’ may change the sign of the result

(forward port of commit f1c4ffefdaed7b45912357943000a2e4838305df)
2012-03-13 15:00:57 -03:00
Marcelo Roberto Jimenez
461a478c25 Address family is an int
Reference: "man 2 socket".
(cherry picked from commit a692e591defe6ed9a617b9b4a083964a01f7bbab)
2012-03-13 14:33:20 -03:00
Fabrice Fontaine
46da1738b9 Remove more implicit casts in upnp part
Remove more "implicit integer or enum conversions" errors as well as
dead code.

(forward port of commit c40d2bc0c9b60c43b641ac4669c7b8bbcd6134c5)
2012-03-11 21:38:56 -03:00
Yoichi NAKAYAMA
12b88a9fbf Suppress compiler warning in CreateClientRequestPacketUlaGua.
It is a static function and is called with AF_INET6,
so there is no real problem.
(cherry picked from commit 8e39b2af85512bd56a5d593fbd83f8ab227c0097)
2012-03-11 20:59:29 -03:00
Fabrice Fontaine
d56a68d771 Remove more implicit casts in upnp part
Remove more "implicit integer or enum conversions" as well as memset
before snprintf.

(forward port of commit 2eb3e069badd5c8676738c3ead37f9551fd8448e)
2012-03-11 20:58:28 -03:00
Yoichi NAKAYAMA
e2de269593 Avoid out of range access in CheckOtherHTTPHeaders.
There was a problem in HDR_ACCEPT_LANGUAGE case.
It may read from TmpBuf larger amount than allocated,
since condition was always true.
Terminate RespInstr->AcceptLanguageHeader correctly.
Skip allocation if there is already sufficient buffer.
(cherry picked from commit db532afb9bd7b870585705701b32dee441a5f6cb)
2012-03-11 12:17:22 -03:00
Yoichi NAKAYAMA
7308f42a7a Suppress compiler warning in CreateClientRequestPacket.
It is a static function and is called with AF_INET or AF_INET6,
so there is no real problem.
(cherry picked from commit 1b38cc963aec8c6c45bcd33db5c5eeb2de21826a)
2012-03-11 12:17:22 -03:00
Fabrice Fontaine
f020c4f5fb Remove some of the implicit cast in upnp part
Remove some of the "implicit integer or enum conversions" as well as
some access to NULL reference in upnp part.

(forward port of commit c67187ac94f25ae23b286a1521d968911edba61d)
2012-03-11 12:16:15 -03:00
Yoichi NAKAYAMA
c8fdafc79c Exclude IPv6 stuff in SearchByTarget when UPNP_ENABLE_IPV6 is not defined.
(cherry picked from commit 41412c16ef23fc63abbfc83cca8d4a901035ef91)
2012-03-11 12:09:47 -03:00
Yoichi NAKAYAMA
8871805c77 Use strncpy with the standard way in readFromSSDPSocket.
(cherry picked from commit 04e5767ea0d5a8e1c02fa1c5a3a7e66a599cae40)
2012-03-11 12:09:47 -03:00
Yoichi NAKAYAMA
c9024bbb40 Respect unique_service_name error in ssdp_request_type.
Respect unique_service_name error in ssdp_request_type
so as not to touch non-terminated buffer under Evt.
(cherry picked from commit 5944960e172a797a9fcc196291f4046cafa7f6ec)
2012-03-11 12:09:46 -03:00
Yoichi NAKAYAMA
9223094468 Handle overflow in http_SendMessage.
(cherry picked from commit d952ebfb4448ae9052b4dac859bb2cfcd20ad915)
2012-03-11 12:09:46 -03:00
Yoichi NAKAYAMA
da1dec9ee5 Detect overflow in addrToString called from configure_urlbase.
Pass output buffer size to addrToString and detect overflow.
Handle addrToString error in configure_urlbase.
(cherry picked from commit 56b44fee914738eb9e8bddc5fce768e2dbc4db12)
2012-03-11 12:09:46 -03:00
Yoichi NAKAYAMA
6ba4181fe6 Detect overflow in CreateClientRequestPacket(UlaGua).
Pass output buffer size to CreateClientRequestPacket(UlaGua)
from SearchByTarget and detect overflow.
Handle SearchByTarget error in UpnpSearchAsync.
(cherry picked from commit ff635f92c08cf8f7ebca973450bd79feacb2e0b1)
2012-03-11 12:09:46 -03:00
Yoichi NAKAYAMA
1ed33f3c5b Clarify the last argument of GetDescDocumentAndURL has size LINE_SIZE.
(cherry picked from commit 19a23dafbad2e3354219c852e0e34bed08139623)
2012-03-11 12:09:46 -03:00
Yoichi NAKAYAMA
4e20af9ee9 For inet_ntop, use buffer with size INET6_ADDRSTRLEN or INET_ADDRSTRLEN.
(cherry picked from commit bd7f83feb549cb85d18763b45f580c8bdce253dd)
2012-03-11 12:09:46 -03:00
Yoichi NAKAYAMA
37b0afe1dc Treat large argument as error in UpnpAddVirtualDir.
(cherry picked from commit e4678168fa8564e788293ef764dc3265f89484bc)
2012-03-11 12:09:46 -03:00
Yoichi NAKAYAMA
17e1f6aa09 Do not clear buffer before snprintf.
It had no effect since snprintf can overwrite whole buffer.
(cherry picked from commit a0dc3482dc17e19a7b89bff27c3801405b5a4a64)
2012-03-11 12:09:45 -03:00
Yoichi NAKAYAMA
659182ef9b Add assertion and narrow variable scope in resolve_rel_url().
I've confirmed enough buffer is allocated for output.
(cherry picked from commit 87d1d3c3ec1c5609bd004c48c69c4a7349563230)
2012-03-11 12:09:45 -03:00
Yoichi NAKAYAMA
6ea4cc41ef Handle allocation error in strndup to avoid access violation.
Return NULL before calling strncpy.
Platforms with HAVE_STRNDUP are not affected.
(cherry picked from commit 194397b6d62b0a9910075ec07ecb77df6929abc8)
2012-03-11 12:09:45 -03:00
Yoichi NAKAYAMA
2b3f5bbcee Fix buffer size for strncpy in UpnpAddVirtualDir()
Since 1st argument precedes the beginning of the buffer,
it is necessary to reduce the value of 3rd argument.
(cherry picked from commit b78eaf4e4374684847c4b5e1d62cb5a0a2541d9a)
2012-03-11 12:09:45 -03:00
Yoichi NAKAYAMA
97e1f19323 fix missing assignment in commit e722d8c375dc50b855b41cd56e2fc3d70af4201e
(cherry picked from commit 18bf3b1c9c33fe3885d798a017af5892a0ff5cc2)
2012-03-11 12:09:45 -03:00
Fabrice Fontaine
77d42c2db1 More compilaton optimisation
Do not compile most of service_table.c and client_table.c if
--disable-gena is used.
Do not compile urlconfig.c if --disable-webserver is used.
Adding new UPNP_HAVE_xxx variables in upnpconfig.h and upnpconfig.h.in.

(forward port of commit bb140000c042b670211d5113bc54dd4e50e93c0e)
2012-03-11 12:08:47 -03:00
Fabrice Fontaine
a12d5a6f7d Optimisation of --disable-webserver
Do not compile webserver.c if --disable-webserver is used.
(cherry picked from commit 7aef73d7eb0206db0d07744ef258f7d04e206f0e)
2012-03-11 12:05:29 -03:00
Fabrice Fontaine
783ebbc0ca Optimisation of --disable-webserver
Do not compile miniserver.c if --disable-webserver is used.
(cherry picked from commit 72eecacf560de1215c2a79779c5ac7cd04828d0d)
2012-03-09 12:15:03 -03:00
Fabrice Fontaine
f27461c871 Adding configure options
Adding --disable-ssdp, --disable-soap, --disable-gena options to
configure script.
(cherry picked from commit 601332f88ffa42362baae2207a25c222b95ec35a)
2012-03-09 12:15:03 -03:00
Fabrice Fontaine
10ad771410 Bug fix of last commit
_snprintf was wrongly defined in ssdp_server.c
(cherry picked from commit e95b4cc53aefc029679e9793910273c75034055b)
2012-03-09 11:21:40 -03:00
Fabrice Fontaine
d19c0757dc SF Bug Tracker id 3499781 - msvc doesn't have snprintf
Submitted: Yoichi NAKAYAMA ( yoichi ) - 2012-03-08 10:18:39 PST

97a17ff5add73c97844e2fa74456bab4df0800f1 commit breaks build on
windows/msvc since there is no snprintf.

Note:
* Some existing sources use _snprintf when WIN32 is defined, but its
behavior is a bit different from C99 snprintf.
* snprintf does terminate the buffer, so the commit (use buffer size
minus 1 as argument) changes the behavior at the boundary.
* Truncation might be better than crash in some cases. But it may
result in not good.

(forward port of commit e722d8c375dc50b855b41cd56e2fc3d70af4201e)
2012-03-09 11:21:40 -03:00
Marcelo Roberto Jimenez
4bd3b6b969 SF Bug Tracker id 3499878 - UpnpUnSubscribeAsync(): ‘retVal’ may be used uninitialized
Submitted: Marcelo Roberto Jimenez ( mroberto ) - 2012-03-08 12:38:57 PST

src/api/upnpapi.c: In function ‘UpnpUnSubscribeAsync’:
src/api/upnpapi.c:2060:6: warning: ‘retVal’ may be used uninitialized in this function
(cherry picked from commit 29ee36b1cad224015d70848df398d4d62f3d1937)
2012-03-08 17:42:36 -03:00
Fabrice Fontaine
10805cb8cc Memory leaks correction in upnpapi.c
Fix memory leaks in UpnpUnSubscribe, SendActionExAsync and
RenewSubscription.
(cherry picked from commit 3ab8d536a02f8ea5b6b24e4ddb6325a44187b5c4)
2012-03-08 13:08:52 -03:00
Fabrice Fontaine
0edaf3361d Remove most of strcpy, sprintf and strcat
Replace strcpy, sprintf and strcat by strncpy, snprintf and strncat to
avoid buffer overflows.

(forward port of commit 97a17ff5add73c97844e2fa74456bab4df0800f1)
2012-03-08 13:08:52 -03:00
Fabrice Fontaine
beae2ea332 Check for NULL pointer in TemplateSource.h
calloc can return NULL so check for NULL pointer in CLASS##_new and
CLASS##_dup.
2012-03-08 17:55:19 +01:00
Fabrice Fontaine
666bc7392b Replace strcpy with strncpy in get_hoststr
Replace strcpy with strncpy to avoid buffer overflow.
2012-03-08 17:23:46 +01:00
Fabrice Fontaine
eb16f52b1a Memory leak fix in handle_query_variable
variable was never freed.
2012-03-08 14:30:33 +01:00
Yoichi NAKAYAMA
4fd84cbee1 SF Bug Tracker id 3497714 - Buffer overflows
Fix compile error on WIN32.

Local variables must be declared first.
Remove outdated comment.

(forward port of commit 4c3532585df4af55adb661d92788915cfccf52ba)
2012-03-07 16:23:17 -03:00
Fabrice Fontaine
0b2a4e580e Remove SIZEOF_MISTACH error in notify_send_and_recv
Replace sizeof(CRLF) by strlen(CRLF) as CRLF is a const char*.
(cherry picked from commit cec9d55c4c82384333ecfad6c7c8d51fd07cc5dc)
2012-03-07 16:16:51 -03:00
Fabrice Fontaine
81f10bcffb SF Bug Tracker id 3498439 - Memory leak in removeServiceTable
Submitted: Fabrice Fontaine ( ffontaine ) - 2012-03-07 02:35:46 PST

UDN is not freed.
(cherry picked from commit 0469388b73f133e839ebe9689b433a84c638b68e)
2012-03-07 16:03:13 -03:00
Fabrice Fontaine
d4c20442fc Removing two unused variables in ssdp_server.c
Removing first TempPtr allocation in unique_service_name as well as one
of the dbgStr allocation in AdvertizeAndReply as those values were not
used.
(cherry picked from commit 7ef089b09a79aa2e596d8ed7a5d04d74159d9882)
2012-03-06 20:31:49 -03:00
Fabrice Fontaine
d6db7c555d SF Bug Tracker id 3497714 - Buffer overflows
Submitted: Fabrice Fontaine ( ffontaine ) - 2012-03-06 07:36:08 PST

Call to strcpy should be replaced by call to memset and strncpy to
avoid getting buffer overflows.
2012-03-06 20:31:49 -03:00
Fabrice Fontaine
75fdad1108 SF Bug Tracker id 3497140 - Bug fix in http_get_code_text
Submitted: Fabrice Fontaine ( ffontaine ) - 2012-03-05 13:07:03 PST

Replace if( statusCode < 100 && statusCode >= 600 ) which can't be true
by if( statusCode < 100 || statusCode >= 600 ).
(cherry picked from commit 1a1570fe0fa95bfc80b74de65e80dff9b7565b9e)
2012-03-06 20:06:29 -03:00
Fabrice Fontaine
d4ff4ecc86 SF Bug Tracker id 3497126 - Resource leak in http_RecvPostMessage
Submitted: Fabrice Fontaine ( ffontaine ) - 2012-03-05 12:33:59 PST

Fp is not closed when an error is raised on membuffer_append or
sock_read.
(cherry picked from commit 30badb44c74aefa1c81c63d394079f5fa16c7dc1)
2012-03-06 20:06:22 -03:00
Yoichi NAKAYAMA
8ffb52e330 SF Bug Tracker id 3417134 - Crash seen in UpnpFinish
Submitted: Sunil ( sunilangadi ) - 2011-10-02 08:28:47 PDT

Details: I observed crash in the below mentioned log statement in
function upnpfinish(file: upnpapi.c).
UpnpPrintf(UPNP_INFO, API, __FILE__, __LINE__, "Exiting UpnpFinish:
	UpnpSdkInit is :%d:\n", UpnpSdkInit);

In particular it was crashing in ithread_self in
UpnpDisplayFileAndLine(file upnpdebug.c) on WIN32.

Moving the call ithread_cleanup_library() below the upnp printf call
mentioned above in function upnpfinish fixed the crash but I couldn't get
to the root of the problem.

The problem was observed on WIN32.
(cherry picked from commit e5887c9036ed79a741e7383b4d323bf13171f320)
2012-03-05 15:07:08 -03:00
Fabrice Fontaine
4b7aa238e7 SF Bug Tracker id 3497034 - Buffer not null terminated in UpnpGetIfInfo
Submitted: Fabrice Fontaine ( ffontaine ) - 2012-03-05 06:43:52 PST

gIF_NAME might be not null terminated.
(cherry picked from commit eeab71082f112141e5ebb621e38e670f43a6e73b)
2012-03-05 14:38:18 -03:00
Fabrice Fontaine
d1a4925359 SF Bug Tracker id 3497033 - Buffer not null terminated in UpnpInit
Submitted: Fabrice Fontaine ( ffontaine ) - 2012-03-05 06:42:18 PST

gIF_IPV4, gIF_IPV6 and gIF_IPV6_ULA_GUA might be not null terminated.
Moreover, gIF_IPV4 should be 16 characters (INET_ADDRSTRLEN) and not 22
and gIF_IPV6 should be 46 characters (INET6_ADDRSTRLEN) and not 65.
(cherry picked from commit f6e88d5b0a9c1e2cb2f6bf5e394f055116071fb7)
2012-03-05 14:38:18 -03:00
Fabrice Fontaine
7264f892e7 Bug fix of lastest commit (parse_hostport)
Missing parenthesis in memset.
(cherry picked from commit add51536fc40bdb28532669748e7cfdbeef746d8)
2012-03-05 14:38:17 -03:00
Fabrice Fontaine
898fb30183 SF Bug Tracker id 3497027 - Buffer not null terminated in parse_hostport
Submitted: Fabrice Fontaine ( ffontaine ) - 2012-03-05 06:28:38 PST

workbuf might be not null terminated.
(cherry picked from commit 40864da7c134fe91b00c30f0ea3081f8f4cf28ef)
2012-03-05 14:38:17 -03:00
Fabrice Fontaine
a0951e3753 SF Bug Tracker id 3497009 - Resource leak in http_SendMessage
Submitted: Fabrice Fontaine ( ffontaine ) - 2012-03-05 05:51:44 PST

Fp is not closed if fseeko(Fp, Instr->RangeOffset, SEEK_CUR) does not return 0.
(cherry picked from commit 5caaf3ad071e4833aaab74133cc755ce3e917c01)
2012-03-05 14:38:17 -03:00