X-Git-Url: http://www.chiark.greenend.org.uk/ucgi/~ianmdlvl/git?p=elogind.git;a=blobdiff_plain;f=src%2Fshared%2Flog.c;h=eba5853ab0a53ed9ad587b2a5f7c2339472b8eb1;hp=56469b32b5d44dfe69e822921130cbe2c8c7163b;hb=6357ac664c9ce8ae5b83bdb98011da24185e4efa;hpb=387eba008426fbd8d7400eef8e41fda09f7f3cb3 diff --git a/src/shared/log.c b/src/shared/log.c index 56469b32b..eba5853ab 100644 --- a/src/shared/log.c +++ b/src/shared/log.c @@ -813,6 +813,9 @@ int log_struct_internal( * since vasprintf() leaves it afterwards at * an undefined location */ + if (error != 0) + errno = error; + va_copy(aq, ap); if (vasprintf(&buf, format, aq) < 0) { va_end(aq); @@ -856,6 +859,9 @@ int log_struct_internal( while (format) { va_list aq; + if (error != 0) + errno = error; + va_copy(aq, ap); vsnprintf(buf, sizeof(buf), format, aq); va_end(aq);