From cf282dff4880faf30f710eb14d5038b9ccff093b Mon Sep 17 00:00:00 2001 From: Neale Pickett Date: Thu, 16 Sep 2010 17:11:55 -0600 Subject: [PATCH] I found %*s in printf! Converting... --- src/in.tokend.c | 17 +++++++++-------- 1 file changed, 9 insertions(+), 8 deletions(-) diff --git a/src/in.tokend.c b/src/in.tokend.c index 2850610..f86a626 100644 --- a/src/in.tokend.c +++ b/src/in.tokend.c @@ -70,9 +70,10 @@ int main(int argc, char *argv[]) { char service[50]; + size_t servicelen; char token[80]; - uint32_t key[4]; size_t tokenlen; + uint32_t key[4]; /* Seed the random number generator. This ought to be unpredictable enough for a contest. */ @@ -80,12 +81,12 @@ main(int argc, char *argv[]) /* Read service name. */ { - size_t len; - int i; + ssize_t len; len = read(0, service, sizeof(service) - 1); - for (i = 0; (i < len) && isalnum(service[i]); i += 1); - service[i] = '\0'; + for (servicelen = 0; + (servicelen < len) && isalnum(service[servicelen]); + servicelen += 1); } /* Read in that service's key. */ @@ -121,9 +122,9 @@ main(int argc, char *argv[]) bubblebabble(digest, (char *)crap, itokenlen); /* Append digest to service name. */ - tokenlen = (size_t)my_snprintf(token, sizeof(token), - "%s:%s", - service, digest); + tokenlen = (size_t)snprintf(token, sizeof(token), + "%*s:%s", + servicelen, service, digest); } /* Write that token out now. */