5309 Commits

Author SHA1 Message Date
Edward E
7485abe481 W32: pass argc returned by CommandLineToArgvW() to to protect_wargv()
It turns out that CommandLineToArgvW() (at least on XP) doesn't end the argv
pointer array with a NULL, but goes straight into argv[0] string data, as per
MSDN. So gspawn-win32-helper.c:protect_wargv() counts argc too high and
overflows.

https://bugzilla.gnome.org/show_bug.cgi?id=772054
2016-09-27 16:59:56 +00:00
Philip Withnall
6014039cd1 glib: Add SystemTap probe to g_source_add_child_source()
So that the relationships between parent and child GSources can be
probed using SystemTap.
2016-09-23 22:46:30 -07:00
Rico Tzschichholz
ba18667bb4 unicode: Update to unicode 9.0.0
https://bugzilla.gnome.org/show_bug.cgi?id=771591
2016-09-21 18:31:04 +02:00
Rico Tzschichholz
c7f4699735 unicode: Update break_mappings
This will be required for the update to unicode 9.0.0.

https://bugzilla.gnome.org/show_bug.cgi?id=771591
2016-09-21 18:30:52 +02:00
Jonh Wendell
063e279a56 Fixed annotation for g_log_variant() 2016-09-17 16:25:31 -03:00
Matthias Clasen
2dc11a55f8 Add a test for the previous fix 2016-09-12 22:28:35 -04:00
Kjell Ahlstedt
b12e0b8869 goption: Don't return pointers to deallocated memory
g_option_context_parse() can return pointers to deallocated strings, if the
command line contains an unknown option.

https://bugzilla.gnome.org/show_bug.cgi?id=646926
2016-09-12 22:27:48 -04:00
Jonh Wendell
e7bdd5d189 Add g_log_variant(): structured log that accepts a GVariant
This makes the structured logging available to other
languages via introspection.

https://bugzilla.gnome.org/show_bug.cgi?id=770971
2016-09-09 09:07:50 -03:00
Jonh Wendell
9323378834 tests: Remove an unsed variable 2016-09-09 09:07:50 -03:00
Jonh Wendell
b18051067a Removed an unused include 2016-09-09 08:50:55 -03:00
Philip Withnall
b4326bc348 gmessages: Drop unnecessary stdio.h include
This was needed for an earlier version of the structured logging work,
but not the latest.
2016-08-17 12:41:26 +02:00
Allison Lortie
6d1178b2d9 gregex: loosen behaviour testing
Circa 8.38, upstream PCRE (intentionally?) changed behaviour with
respect to whether options set with expressions like "(?i)" at the
top-level were reported via the pcre_fullinfo() API as having been
requested during compilation.

GLib contained a test that verified that these options were indeed
reported as if they had been provided as flags on the API.

Remove that check, and document the no-longer-deterministic behaviour.

https://bugzilla.gnome.org/show_bug.cgi?id=767240
2016-08-16 10:41:46 +02:00
Philip Withnall
5707c91a56 win_iconv: Fix some file handler leaks on exit
I realise this is a contradiction in terms, but it keeps code analysis
tools happy. As spotted by cppcheck, which could not attend GUADEC, but
sends everyone its best wishes anyway.
2016-08-13 10:31:26 +02:00
Philip Withnall
f1eeb7cf8c tests: Fix GSList test to not dereference off the end of an array
This looks like a typo or copypasta error. As spotted by cppcheck, which
is the code analysis tool GLib deserves, but not the one it needs right
now.
2016-08-13 10:29:31 +02:00
Philip Withnall
ba874a8580 tests: Add an assertion to guard against unexpected flags
This should not change the behaviour of the test, unless the test's
behaviour is changed in future. As spotted by cppcheck, which has
impeccable taste and a flair for the unexpected.
2016-08-13 10:28:24 +02:00
Philip Withnall
c868d9879c glib-mirroring-tab: Fix string format placeholder to be unsigned
Because the argument is unsigned. As spotted by cppcheck, which never
sleeps.
2016-08-13 10:27:54 +02:00
Philip Withnall
03b43f3f6a docs: Fix early termination of some documentation comments
As spotted by cppcheck, which has an eye for these things.
2016-08-13 10:27:28 +02:00
Philip Withnall
a5044a8e78 build: Fix SystemTap build to disable semaphores as before
At some point, upstream SystemTap changed from using a
STAP_HAS_SEMAPHORES preprocessor variable for this, to using
_SDT_HAS_SEMAPHORES instead. We need to update our build system to
disable that as well.

The original discussion about use of semaphores is here:

https://bugzilla.gnome.org/show_bug.cgi?id=606044

This was breaking the build with -flto enabled, either because -flto
doesn’t work with semaphores.

https://bugzilla.gnome.org/show_bug.cgi?id=768198
2016-08-13 09:32:12 +02:00
Philip Withnall
a079de930e gmessages: Add doc cross-refs about enabling structured logging
Ensure that all the old log handler documentation includes
cross-references to a new section about how to enable structured logging
(tl;dr: #define G_LOG_USE_STRUCTURED).

https://bugzilla.gnome.org/show_bug.cgi?id=769785
2016-08-12 14:14:54 +02:00
Philip Withnall
f7825f98e7 gmessages: Drop one of the documentation sections
It was short, unhelpful, and easy to confuse with the longer and more
informative documentation sections.

https://bugzilla.gnome.org/show_bug.cgi?id=769785
2016-08-12 11:54:45 +02:00
Philip Withnall
371078b6a3 gmessages: Expand documentation on log domains and G_MESSAGES_DEBUG
Give some example log domains, and recommend that G_MESSAGES_DEBUG is
used universally as the way to enable debug output (rather than having a
separate environment variable per library).

https://bugzilla.gnome.org/show_bug.cgi?id=682794
2016-08-07 08:10:31 +01:00
Philip Withnall
0e132b8ac5 gmessages: Document g_test_expect_message() doesn’t like structured logs
It’s effectively deprecated if G_LOG_USE_STRUCTURED is defined, or if
the structured logging API is used directly. See the documentation for
rationale.

https://bugzilla.gnome.org/show_bug.cgi?id=769486
2016-08-07 08:07:42 +01:00
Philip Withnall
4e66036b82 Revert "Make g_test_expect_message work for structured logs"
This reverts commit df02e8f47cac4d2c550491c9de633233218c7415.

We are going to make g_test_expect_message() only work for the old
logging API.

https://bugzilla.gnome.org/show_bug.cgi?id=769486
2016-08-07 08:07:42 +01:00
Philip Withnall
2a5d9f8898 Revert "Add a test for expected messages with structured logging"
This reverts commit bc40c7a05cbd0e7c9b97ce86cccb6a4b78c2e56a.

We are going to make g_test_expect_message() only work for the old
logging API.

https://bugzilla.gnome.org/show_bug.cgi?id=769486
2016-08-07 08:07:42 +01:00
Philip Withnall
5c3205f2fb gmessages: Don’t require is_journald() call before writer_journald()
g_log_writer_is_journald() works out whether the process’ stderr or
stdout are redirected to journald. While the default writer function
uses this in conjunction with g_log_writer_journald(), that does not
always have to be the case — other writer functions might want to always
write to the journal, and never write to stderr (for example).

Consequently, automatically open the journal socket in
writer_journald(), rather than is_journald().

https://bugzilla.gnome.org/show_bug.cgi?id=769507
2016-08-04 14:33:34 +01:00
Colin Walters
555c5a6376 gvariant: Fix typo in previous commit 2016-08-03 11:34:43 -04:00
Yury Usishchev
1be86b3d18 glib/gvariant.c: Fix NULL pointer check in is_valid_heap_iter
https://bugzilla.gnome.org/show_bug.cgi?id=769245
2016-08-03 11:27:12 -04:00
Matthias Clasen
bc40c7a05c Add a test for expected messages with structured logging
This tests the fix in the previous commit.
2016-08-02 23:16:04 -04:00
Matthias Clasen
df02e8f47c Make g_test_expect_message work for structured logs
This is used in GTK+ tests, and GTK+ has switched to
G_LOG_USE_STRUCTURED, so we need this to keep working.
2016-08-02 23:16:04 -04:00
Chun-wei Fan
7cf037ec16 gmessages.h: Use G_STRFUNC instead of __func__
We have G_STRFUNC which takes care of __func__, which may not be available
depending on compiler, so we ought to make use of it.

https://bugzilla.gnome.org/show_bug.cgi?id=744456
2016-07-28 16:04:02 +08:00
Chun-wei Fan
6d6b97aa59 gmessages.c: Fix build on non-Linux
journald is a part of systemd which is Linux-only at this time, so only
compile the journald items on Linux only, and just return FALSE for
g_log_writer_is_journald() and G_LOG_WRITER_UNHANDLED for
g_log_writer_journald() on non-Linux.

https://bugzilla.gnome.org/show_bug.cgi?id=744456
2016-07-27 10:45:00 +08:00
Matthias Clasen
496c52ec79 Avoid htole64 altogether
GLib ships its own api for this, lets use it.
2016-07-25 12:31:52 -04:00
Matthias Clasen
ad285d9bd2 Handle EINTR when sending logs to the journal
Ray pointed out that we might well get interrupted here,
and should not loose logs due to that.
2016-07-25 10:25:40 -04:00
Matthias Clasen
34cb9c7de1 Explicitly include endian.h
htole64 is defined here.

https://bugzilla.gnome.org/show_bug.cgi?id=769139
2016-07-25 10:15:08 -04:00
Matthias Clasen
a2d5d1f119 Use SOCK_CLOEXEC if available
Ray pointed out that we can avoid the race here.
2016-07-25 09:47:26 -04:00
Thiago Macieira
a5f209bc65 Fall back for overflow-checked arithmetic with Intel compiler
The Intel compiler does not have intrinsics like `__builtin_uadd_overflow`.

https://bugzilla.gnome.org/show_bug.cgi?id=769104
2016-07-23 09:27:52 -04:00
Matthias Clasen
df457c9110 Update logging tests
We now treat the PRIORITY field like other string fields, and
set its length to -1. Adapt the tests for this.
2016-07-22 23:06:52 -04:00
Matthias Clasen
6a07885a98 Drop libsystemd dependency
Talk to the journal ourselves using sendmsg() instead of linking
against libsystemd for sd_journal_sendv(). At the same time, we
can also avoid excessive copying.

The motivation for dropping the dependency is that we can
then use structured logging e.g. in a flatpak sandbox where
libsystemd may not be present in the runtime.

The code here is inspired by similar code in libvirt.
2016-07-22 23:04:51 -04:00
Matthias Clasen
ca775518d8 Add more structured logging tests
In particular, add a test to ensure that passing NULL
as log_domain has no negative consequences.
2016-07-22 15:12:42 -04:00
Matthias Clasen
e7ee56dd1d Make g_log_set_writer_func work more than once
It is fine to document that you shall only call this once,
but for tests, it is important that we can call it multiple
times.
2016-07-22 15:12:42 -04:00
Matthias Clasen
97a38dc586 Fix a small typo 2016-07-22 15:12:42 -04:00
Ray Strode
f414cddc1f gmessages: support NULL log domain
It's possible that a project may not define the G_LOG_DOMAIN but
still use g_log functions.  In such cases, we now crash.

This commit fixes that.

https://bugzilla.gnome.org/show_bug.cgi?id=769087
2016-07-22 11:33:14 -04:00
Matthias Clasen
f38845c116 Expand g_log_structured docs a bit
Mention two possible pitfalls that were pointed out by Ray Strode.
2016-07-21 14:52:46 -04:00
Krzesimir Nowak
d5a16fbd2d gvariant: Avoid anonymous struct and union members
C++ does not like them for various reasons.

https://bugzilla.gnome.org/show_bug.cgi?id=766370
2016-07-21 14:06:58 +02:00
Daniel P. Berrange
b9934f16b6 gchecksum: annotate when G_CHECKSUM_SHA512 was introduced
Currently the docs for GChecksumType are simpy annotated
with 'Since 2.16' which is when GChecksumType was first
introduced. No mention is made of the fact that the
G_CHECKSUM_SHA512 constant was only added much later
in 2.36.

Signed-off-by: Daniel P. Berrange <berrange@redhat.com>

https://bugzilla.gnome.org/show_bug.cgi?id=769027
2016-07-21 08:03:26 -04:00
Víctor Manuel Jáquez Leal
d311177948 gmessage: Suppress string format literal warning
https://bugzilla.gnome.org/show_bug.cgi?id=769029
2016-07-21 07:12:46 -04:00
Matthias Clasen
849599671c Update structured logging docs a bit
Remove references to removed macros, add some more links
to standard journal fields.
2016-07-20 20:42:09 -04:00
Matthias Clasen
6554086070 Make gtk-doc handle GLogField
gtk-doc can't deal with typedef struct {...} GLogField, it seems.
2016-07-20 20:42:09 -04:00
Matthias Clasen
f5a8dfb6af Improve journal detection
We can use getpeername() and check if we have a socket that
is in /run/systemd/journal/.
2016-07-20 20:42:09 -04:00
Matthias Clasen
3892034455 Add more tests for g_log_structured 2016-07-20 20:42:09 -04:00