All of lore.kernel.org
 help / color / mirror / Atom feed
From: Eric Sunshine <ericsunshine@gmail.com>
To: kusmabite@gmail.com
Cc: git@vger.kernel.org, msysgit@googlegroups.com, j6t@kdbg.org,
	Mike Pape <dotzenlabs@gmail.com>
Subject: Re: [msysGit] [PATCH v3 02/14] mingw: implement syslog
Date: Sun, 10 Oct 2010 17:28:19 -0400	[thread overview]
Message-ID: <4CB22FF3.5070503@gmail.com> (raw)
In-Reply-To: <AANLkTinsqAOj7LtACpbcOrVZfeUApDjmQe2uYLH8npBF@mail.gmail.com>

On 10/10/2010 4:37 PM, Erik Faye-Lund wrote:
> On Sun, Oct 10, 2010 at 9:50 PM, Eric Sunshine<ericsunshine@gmail.com>  wrote:
>> On 10/10/2010 9:20 AM, Erik Faye-Lund wrote:
>>>
>>> From: Mike Pape<dotzenlabs@gmail.com>
>>>
>>> Syslog does not usually exist on Windows, so we implement our own
>>> using Window's ReportEvent mechanism.
>>>
>>> Signed-off-by: Mike Pape<dotzenlabs@gmail.com>
>>> Signed-off-by: Erik Faye-Lund<kusmabite@gmail.com>
>>> ---
>>> +void syslog(int priority, const char *fmt, const char *arg)
>>> +{
>>> +       WORD logtype;
>>> +
>>> +       if (!ms_eventlog)
>>> +               return;
>>> +
>>> +       if (strcmp(fmt, "%s")) {
>>> +               warning("format string of syslog() not implemented");
>>> +               return;
>>> +       }
>>
>> It is not exactly clear what the intention is here. Is this trying to say
>> that no formatting directives are allowed in 'fmt' or what? The simple case
>> it is actually checking (where 'fmt' is solely '%s') could easily be handled
>> manually, as could more complex formats.
>>
>
> This is the result of the feed-back in v1, where we tried to implement
> all format strings.

In retrospect, when thinking more carefully about the conditional 
expression, I suppose the code is self-documenting, though perhaps a 
comment in code or in commit message would help.

> But that turned out to be very complex (due to the
> lack of a portable va_copy()) and since we control all call-sites for
> syslog and already only use "%s" as the format, it should be OK.

Do you mean vsnprintf() rather than va_copy()?

>>> +       /*
>>> +        * ReportEvent() doesn't handle strings containing %n, where n is
>>> +        * an integer. Such events must be reformatted by the caller.
>>> +        */
>>> +       ReportEventA(ms_eventlog,
>>> +           logtype,
>>> +           0,
>>> +           0,
>>> +           NULL,
>>> +           1,
>>> +           0,
>>> +           (const char **)&arg,
>>> +           NULL);
>>
>> The comment about '%n' seems to be warning about a potential problem but
>> does not actually protect against it. Should this issue be handled?
>>
>
> This is again an issue that was discussed in the first round.
> ReportEvent() CANNOT report a string containing "%n" (where n is an
> integer). And while we could probably try to work around it by
> inserting a space or something, and I don't think we ever were able to
> find a case where we could report a string containing "%n" in the
> first place...
>
> Are you suggesting that we report an error when we can't report the
> string correctly? We could do that, but I'm not sure how the end-user
> would benefit from that. ReportEvent is used to report errors (unless
> the --verbose flag has been specified), and reporting that we can't
> present an error message strike me as a bit confusing... Even the
> corrupted error message is probably better :P

I am not suggesting reporting an error. As a first-time reader of the 
code, I was trying to understand the presence of the comment which did 
not really seem to relate to the code. Perhaps adding a "FIXME" to the 
comment saying that the condition should perhaps be handled in the 
future would help to explain the comments presence.

(On the other hand, for the '%s' check above, the code does report a 
warning and then exits, so it is not inconceivable that a '%n' could 
also emit a warning.)

-- ES

  parent reply	other threads:[~2010-10-10 21:28 UTC|newest]

Thread overview: 43+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2010-10-10 13:20 [PATCH v3 00/14] daemon-win32 Erik Faye-Lund
2010-10-10 13:20 ` [PATCH v3 01/14] mingw: add network-wrappers for daemon Erik Faye-Lund
2010-10-10 19:40   ` Eric Sunshine
2010-10-10 20:20     ` Erik Faye-Lund
2010-10-10 21:19       ` Eric Sunshine
2010-10-10 13:20 ` [PATCH v3 02/14] mingw: implement syslog Erik Faye-Lund
2010-10-10 19:50   ` [msysGit] " Eric Sunshine
2010-10-10 20:37     ` Erik Faye-Lund
2010-10-10 20:51       ` Johannes Sixt
2010-10-10 21:17         ` Erik Faye-Lund
2010-10-10 21:28       ` Eric Sunshine [this message]
2010-10-10 22:16         ` Erik Faye-Lund
2010-10-10 22:23           ` Erik Faye-Lund
2010-10-10 23:20           ` Eric Sunshine
2010-10-11 15:28             ` [msysGit] " Erik Faye-Lund
2010-10-11 15:59               ` Erik Faye-Lund
2010-10-10 13:20 ` [PATCH v3 03/14] compat: add inet_pton and inet_ntop prototypes Erik Faye-Lund
2010-10-10 13:20 ` [PATCH v3 04/14] inet_ntop: fix a couple of old-style decls Erik Faye-Lund
2010-10-10 13:20 ` [PATCH v3 05/14] mingw: use real pid Erik Faye-Lund
2010-10-10 19:53   ` Eric Sunshine
2010-10-10 20:52     ` Erik Faye-Lund
2010-10-10 21:56       ` Eric Sunshine
2010-10-10 13:20 ` [PATCH v3 06/14] mingw: support waitpid with pid > 0 and WNOHANG Erik Faye-Lund
2010-10-10 13:20 ` [PATCH v3 07/14] mingw: add kill emulation Erik Faye-Lund
2010-10-10 13:20 ` [PATCH v3 08/14] daemon: use run-command api for async serving Erik Faye-Lund
2010-10-10 19:56   ` [msysGit] " Eric Sunshine
2010-10-10 20:42     ` Erik Faye-Lund
2010-10-10 13:20 ` [PATCH v3 09/14] daemon: use full buffered mode for stderr Erik Faye-Lund
2010-10-10 13:20 ` [PATCH v3 10/14] Improve the mingw getaddrinfo stub to handle more use cases Erik Faye-Lund
2010-10-10 13:20 ` [PATCH v3 11/14] daemon: report connection from root-process Erik Faye-Lund
2010-10-10 18:58   ` Johannes Sixt
2010-10-10 19:31     ` Erik Faye-Lund
2010-10-10 19:42       ` Erik Faye-Lund
2010-10-10 20:14         ` Ævar Arnfjörð Bjarmason
2010-10-10 20:48           ` Erik Faye-Lund
2010-10-10 13:20 ` [PATCH v3 12/14] mingw: import poll-emulation from gnulib Erik Faye-Lund
2010-10-10 14:15   ` Ævar Arnfjörð Bjarmason
2010-10-10 14:28     ` Erik Faye-Lund
2010-10-10 19:34       ` Erik Faye-Lund
2010-10-10 19:51         ` Ævar Arnfjörð Bjarmason
2010-10-10 13:20 ` [PATCH v3 13/14] mingw: use " Erik Faye-Lund
2010-10-10 13:20 ` [PATCH v3 14/14] daemon: only use posix features on posix systems Erik Faye-Lund
2010-10-10 19:40   ` Ævar Arnfjörð Bjarmason

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=4CB22FF3.5070503@gmail.com \
    --to=ericsunshine@gmail.com \
    --cc=dotzenlabs@gmail.com \
    --cc=git@vger.kernel.org \
    --cc=j6t@kdbg.org \
    --cc=kusmabite@gmail.com \
    --cc=msysgit@googlegroups.com \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.