From: Dave Hart Date: Thu, 16 Dec 2010 23:57:51 +0000 (+0000) Subject: first verbose --version attempt caused --help to segfault. X-Git-Tag: NTP_4_2_7P95~5^2 X-Git-Url: http://git.ipfire.org/cgi-bin/gitweb.cgi?a=commitdiff_plain;h=0c578cb0e5472080018b4440cf948660e33bed05;p=thirdparty%2Fntp.git first verbose --version attempt caused --help to segfault. bk: 4d0aa77fU3Ue99NuAPjkQuvJgt_oUQ --- diff --git a/libntp/ntp_libopts.c b/libntp/ntp_libopts.c index 4a9d11985..f15597001 100644 --- a/libntp/ntp_libopts.c +++ b/libntp/ntp_libopts.c @@ -28,16 +28,16 @@ ntpOptionProcess( char ** argv ) { - u_char Opts[sizeof(*pOpts)]; + char * pchOpts; char ** ppzFullVersion; char * pzNewFV; - const char * pzAutogenFV; + char * pzAutogenFV; size_t octets; int rc; - memcpy(Opts, pOpts, sizeof(Opts)); - ppzFullVersion = (char **)(Opts + offsetof(struct options, - pzFullVersion)); + pchOpts = (void *)pOpts; + ppzFullVersion = (char **)(pchOpts + offsetof(tOptions, + pzFullVersion)); pzAutogenFV = *ppzFullVersion; octets = strlen(pzAutogenFV) + 1 + /* '\n' */ @@ -46,7 +46,8 @@ ntpOptionProcess( pzNewFV = emalloc(octets); snprintf(pzNewFV, octets, "%s\n%s", pzAutogenFV, Version); *ppzFullVersion = pzNewFV; - rc = optionProcess((tOptions *)Opts, argc, argv); + rc = optionProcess(pOpts, argc, argv); + *ppzFullVersion = pzAutogenFV; free(pzNewFV); return rc;