Age | Commit message (Collapse) | Author | Files | Lines |
|
Change-Id: I9e650762f3b2b2a31945b66e044e67a77e3b4b12
Signed-off-by: Niraj Kumar Goit <niraj.g@samsung.com>
|
|
Change-Id: Idb47c1ddbedc9f97181b8e9a5eeac04ddd832a2c
Signed-off-by: Nishant Chaprana <n.chaprana@samsung.com>
|
|
Change-Id: Ib5957e7ee3a9315ee86a331189bc3e9e71751ee8
Signed-off-by: Nishant Chaprana <n.chaprana@samsung.com>
|
|
Change-Id: I13526fbf80296a79be15548fc226a308941ac9ec
Signed-off-by: Taesub Kim <taesub.kim@samsung.com>
|
|
Change-Id: I174854914d9fd06a813270b57d1f7bc2bac63c6a
Signed-off-by: Seonah Moon <seonah1.moon@samsung.com>
|
|
- Fixed NTP service's DNS resolving failure in Hive project.
- Do not turn "wlan0" interface down in cleanup_devices().
- Set resource limits "RLIMIT_NOFILE" for a process.
- After appending a file, fflush and fsync all modified in-core data of the file.
Change-Id: I2767b3302d6204d066fe2075027828ff209d0ee0
Signed-off-by: Niraj Kumar Goit <niraj.g@samsung.com>
|
|
Signed-off-by: hyunuktak <hyunuk.tak@samsung.com>
Change-Id: I84a42375b5c59739e4caca1f726699ea7647ef17
|
|
|
|
It will check first if the response belongs to a query,
before interpreting any of its content (rcode, count...).
|
|
Fixes BMC#25973
In the case one of the resolving failed, the query is removed and
destroyed from the queue. So the responses of the requests sent to
the other namerservers - which might be successful - will thus be
lost since they cannot be matched anymore to their initial request.
|
|
parse_response() will eventually call sort_and_return_results() which in turn
will call the result function. But the result function might cancel the gresolv.
At that point all queries belonging to this gresolv are destroyed. Returning back
to parse_response(), it calls again destroy_query() on an already destroyed one.
Thus leading to a crash.
Same issue with query_timeout()
Reported by Daniel Wagner
|
|
Program received signal SIGSEGV, Segmentation fault.
Backtrace:
0 0x00000000004219fe in _debug (resolv=0x75f9a0, file=0x497267 "gweb/gresolv.c",
caller=0x497598 "destroy_lookup",
format=0x497278 "lookup %p id %d ipv4 %p ipv6 %p") at gweb/gresolv.c:136
1 0x0000000000421ac5 in destroy_lookup (lookup=0x760e40) at gweb/gresolv.c:154
2 0x00000000004224ce in sort_and_return_results (lookup=0x760e40) at gweb/gresolv.c:520
3 0x0000000000422597 in query_timeout (user_data=0x760510) at gweb/gresolv.c:542
4 0x00007ffff7b1b26b in g_timeout_dispatch (source=0x760ea0, callback=<optimized out>,
user_data=<optimized out>) at gmain.c:4095
5 0x00007ffff7b1a643 in g_main_dispatch (context=0x6f5110) at gmain.c:2784
6 g_main_context_dispatch (context=0x6f5110) at gmain.c:3288
7 0x00007ffff7b1a988 in g_main_context_iterate (dispatch=1, block=<optimized out>,
context=0x6f5110, self=<optimized out>) at gmain.c:3359
8 g_main_context_iterate (context=0x6f5110, block=<optimized out>, dispatch=1,
self=<optimized out>) at gmain.c:3296
9 0x00007ffff7b1ade5 in g_main_loop_run (loop=0x6f4fe0) at gmain.c:3553
10 0x0000000000442a5f in main (argc=1, argv=0x7fffffffdea8) at src/main.c:705
Reported by Daniel Wagner
|
|
Use for all memory allocation/dealocation operation the glib
functions. This allows us to use g_mem_profile().
|
|
|
|
The order of actions is important here.
|
|
We must close the channel when freeing the resolver object,
otherwise we might still receive data when the resolver has been
freed already.
Fixes BMC#25757
|
|
|
|
The file and function names are printed in debug prints.
|
|
The call to g_resolv_cancel_lookup() will do nothing
because we just removed the lookup from the queue.
The fix is to remove the lookup directly and not call
the cancel function.
|
|
Remove all lookups found in queue when GResolv object is removed.
|
|
We must remove the lookup from lookup queue and query from query queue
before calling user callback. The callback might unref the GResolv which in
turn would remove the lookup/query what we are trying to access after
the callback is returned.
So it is enough to remove the lookup or query entry from queue before
cb is called and then manually remove it after the callback has returned.
|
|
The lookup must be removed from lookup queue and not from query
queue when cancelling the lookup. Otherwise it is possible that
we might access an already removed lookup that is still found in
lookup queue.
Fixes BMC#25728
|
|
Use predefined mnemonics from arpa/nameserv.h for the return value from
ns_msg_getflag rather than magic numbers.
|
|
When performing a resolver lookup from timeserver or wpad, both perform
queries with an unspecified address family. This means that both A and
AAAA record queries are issued. In cases where a valid, successful A
response comes back but where the AAAA query results in a timeout, do
not smash the successful A status with the time out AAAA status;
otherwise, the timeserver or wpad will appear to fail to them when, in
fact, the A query was successful and more than satisfies its unspecified
address family requirement.
Partial fix for BMC#25486.
|
|
In both parse_response and query_timeout there exists logic that checks
to ensure that both an A and AAAA lookups have either been responded to
or timed out before processing and returning results to the caller. In
query_timeout, there was a typo in the condition check such that it did
not match those conditions tested in parse_response.
|
|
|
|
|
|
|
|
g_atomic_int_exchange_and_add() has been removed from glib 2.30
and g_atomic_int_add() should be used. Though there are still
quite a few distros out which do not ship a glib version with
g_atomic_int_add().
Instead of maintaing a compatiblilty glib layer we just use
the built-in functions for atomic memory access.
|
|
Make sure all file descriptor are closed.
|
|
Make buf just big enough and initialize it in order to get
rid of valgrind error (accessing uninitialized memory).
|
|
Adding the capability to restrict DNS queries to a specific address family
through gresolv_set_address_family(). By default, AF_UNSPEC is applied.
|
|
|
|
Reported by: DJ Cozatt <ygdrasil@comcast.net>
|
|
|
|
|
|
Fixes BMC#10958
|
|
|
|
|
|
|
|
|
|
|
|
We're going to want results in sockaddr form for sorting, so let's put
them directly into the array we'll want for the sort process, even though
we haven't actually implemented sorting yet.
We can ditch the support for arbitrary callbacks from the individual
queries, too; there's no need for that. The callback to user code comes
from the *lookup*, having combined the A and AAAA query results.
|
|
|
|
|
|
If IPv6 nameservers were specified in /etc/resolv.conf, we would end up
sending NS queries to 0.0.0.0 because we weren't parsing the __res_state
structure correctly. We were assuming that all listed nameservers would
be Legacy IP.
Also fix connect_udp_channel() to generate the address correctly instead
of just asssuming Legacy IP.
|
|
If we get an error on the UDP socket, we'll currently go into an endless
loop eating CPU with poll() returning POLLERR and us ignoring it.
This at least hooks things up so that our callback gets called, and we
stop looping. But the callback's handling of POLLERR isn't correct. It
should close the socket and open a new one. As it is, it's just going to
try to use the same broken socket again for the next request. But at least
with this patch it'll stop eating CPU.
|
|
|