Control: notfound 773470 2.1.1 On Thu 2014-12-18 13:32:24 -0500, Joshua Rogers wrote: > Package: gnupg2 > Version: 2.1.1 > > On line 1242 of app-nks.c, 'xtrymalloc' is called with 'datalen', > which is calculated using "size_t datalen = oldpinlen + newpinlen"
The code you're talking about is here (in scd/app-nks.c): 1237 if ((flags & APP_CHANGE_FLAG_RESET)) 1238 { 1239 char *data; 1240 size_t datalen = oldpinlen + newpinlen; 1241 1242 data = xtrymalloc (datalen); 1243 if (!data) 1244 { 1245 err = gpg_error_from_syserror (); 1246 goto leave; 1247 } 1248 memcpy (data, oldpin, oldpinlen); 1249 memcpy (data+oldpinlen, newpin, newpinlen); 1250 err = iso7816_reset_retry_counter_with_rc (app->slot, pwid, 1251 data, datalen); 1252 wipememory (data, datalen); 1253 xfree (data); 1254 } > This does not account for the null-bytes, and may cause either a > buffer overflow, or other problems down the line. The only place where data is used is with memcpy() and iso7816_reset_retry_counter_with_rc() and wipememory(). In these invocations, the data buffer is passed with an appropriate size value -- it is not used as a null-terminated string. I'm closing this report because it is not a bug. --dkg
signature.asc
Description: PGP signature