On Jun 25, 2013, at 12:27 PM, Joerg Mayer <jmayer@xxxxxxxxx> wrote:
> your change to the buffer handling broke packet_win.c when being built
> with WANT_PACKET_EDITOR.
> As I asked about this problem before, maybe this bug isn't worth fixing,
> but then we should remove WANT_PACKET_EDITOR.
It's not part of the standard build, so I didn't put it at the top of my priority list (which has a bunch of libpcap/tcpdump/Wireshark stuff on it, in addition to stuff unrelated to software).
Once I file my next clang bug, I'll look at fixing that one.
(clang bug: if anybody from the mothership is reading this, this code should *NOT* get warnings for the call to g_strdup_vprintf() when built with -Wformat-nonliteral:
test.h:
extern char *g_markup_vprintf_escaped(const char *format, va_list args)
__attribute__((__format__(__printf__, 1, 0)));
extern char *g_strdup_vprintf(const char *format, va_list args)
__attribute__((__format__(__printf__, 1, 0)));
test.c:
#include <stdlib.h>
#include <stdarg.h>
#include <stdio.h>
#include "test.h"
char *
g_strdup_vprintf_escaped(const char *format, va_list args)
{
return g_strdup_vprintf(format, args);
}
char *
g_strdup_vprintf(const char *format, va_list args)
{
char *result;
result = malloc(1024);
if (result == NULL)
return NULL;
vsnprintf(result, 1024, format, args);
return result;
}
because calling g_strdup_vprintf_escaped() from a routine with compile-time format checking enabled is no more unsafe than calling g_strdup_vprintf() from a routine with compile-time format checking enabled, but clang complains about the former but not the latter. It's as if g_strdup_vprintf()'s flavor of safety isn't inherited by the wrapper function.
But, as indicated above, a Radar is forthcoming.)