diff options
| author | John Carr <jfc@mit.edu> | 1992-08-21 02:39:58 +0000 |
|---|---|---|
| committer | John Carr <jfc@mit.edu> | 1992-08-21 02:39:58 +0000 |
| commit | debb7eb36558fd89bf53447b2af7cdc9e2faae92 (patch) | |
| tree | cb13e0051a3e52e6a42ce3b2c03a444be647970d /src/admin/edit | |
| parent | f87a25d7fd47a4c802836dfa049a31235dd7c7f3 (diff) | |
| download | krb5-debb7eb36558fd89bf53447b2af7cdc9e2faae92.tar.gz krb5-debb7eb36558fd89bf53447b2af7cdc9e2faae92.tar.xz krb5-debb7eb36558fd89bf53447b2af7cdc9e2faae92.zip | |
Read data into temporary variables to avoid dependencies on size of
key version number data type.
git-svn-id: svn://anonsvn.mit.edu/krb5/trunk@2336 dc483132-0cff-0310-8789-dd5450dbe970
Diffstat (limited to 'src/admin/edit')
| -rw-r--r-- | src/admin/edit/dump.c | 14 |
1 files changed, 11 insertions, 3 deletions
diff --git a/src/admin/edit/dump.c b/src/admin/edit/dump.c index 0727d27c4..a09225283 100644 --- a/src/admin/edit/dump.c +++ b/src/admin/edit/dump.c @@ -245,6 +245,7 @@ void load_db(argc, argv) } for (;;) { int nitems; + unsigned int tmp1, tmp2; lineno++; memset((char *)&entry, 0, sizeof(entry)); @@ -269,12 +270,17 @@ void load_db(argc, argv) load_error++; break; } - if (fscanf(f, "%s\t%d\t%d\t", name, &entry.key.keytype, + if (fscanf(f, "%s\t%d\t%d\t", name, &tmp1, &entry.key.length) != 3) { fprintf(stderr, "Couldn't parse line #%d\n", lineno); load_error++; break; } + /* keytype is probably a short, but might not be. + To avoid problems with scanf, read into a variable of + known type then copy the value. */ + entry.key.keytype = tmp1; + if (!(entry.key.contents = (krb5_octet *) malloc(entry.key.length+1))) { free(name); free(mod_name); @@ -293,8 +299,8 @@ void load_db(argc, argv) entry.key.contents[i] = align; } if (fscanf(f, "\t%u\t%u\t%u\t%u\t%u\t%s\t%u\t%u\t%u\t%u\t", - &entry.kvno, &entry.max_life, - &entry.max_renewable_life, &entry.mkvno, + &tmp1, &entry.max_life, + &entry.max_renewable_life, &tmp2, &entry.expiration, mod_name, &entry.mod_date, &entry.attributes, &stype, &slength) != 10) { @@ -303,6 +309,8 @@ void load_db(argc, argv) load_error++; break; } + entry.kvno = tmp1; + entry.mkvno = tmp2; entry.salt_type = stype; entry.salt_length = slength; if (slength) { |
