Check return value of ftell() in krb5_ktfileint_find_slot
authorGreg Hudson <ghudson@mit.edu>
Fri, 1 May 2009 20:11:01 +0000 (20:11 +0000)
committerGreg Hudson <ghudson@mit.edu>
Fri, 1 May 2009 20:11:01 +0000 (20:11 +0000)
git-svn-id: svn://anonsvn.mit.edu/krb5/trunk@22301 dc483132-0cff-0310-8789-dd5450dbe970

src/lib/krb5/keytab/kt_file.c

index bb2d838d3d2d4965d7619e85d99e9d661d1fa41b..4139da5e022c8db0f132fbfa65131061658d6003 100644 (file)
@@ -1655,6 +1655,8 @@ krb5_ktfileint_find_slot(krb5_context context, krb5_keytab id, krb5_int32 *size_
 
     for (;;) {
         commit_point = ftell(fp);
+       if (commit_point == -1)
+           return errno;
         if (!fread(&size, sizeof(size), 1, fp)) {
             /* Hit the end of file, reserve this slot. */
            /* htonl(0) is 0, so no need to worry about byte order */
@@ -1685,6 +1687,8 @@ krb5_ktfileint_find_slot(krb5_context context, krb5_keytab id, krb5_int32 *size_
            /* Empty record at end of file; use it. */
            /* Ensure the new record will be followed by another 0. */
            zero_point = ftell(fp);
+           if (zero_point == -1)
+               return errno;
            if (fseek(fp, *size_needed, SEEK_CUR))
                return errno;
            /* htonl(0) is 0, so no need to worry about byte order */