Uploaded image for project: 'Lustre'
  1. Lustre
  2. LU-7178

possible invalid memset in osd_acct_index_lookup

Details

    • Bug
    • Resolution: Fixed
    • Minor
    • Lustre 2.8.0
    • None
    • 3
    • 9223372036854775807

    Description

      The memset above look invalid.

      static int osd_acct_index_lookup(const struct lu_env *env,
                       struct dt_object *dtobj,
                       struct dt_rec *dtrec,
                       const struct dt_key *dtkey)
      {
          struct osd_thread_info  *info = osd_oti_get(env);
      #ifdef HAVE_DQUOT_FS_DISK_QUOTA
          struct fs_disk_quota    *dqblk = &info->oti_fdq;
      #else
          struct if_dqblk     *dqblk = &info->oti_dqblk;
      #endif
          struct super_block  *sb = osd_sb(osd_obj2dev(osd_dt_obj(dtobj)));
          struct lquota_acct_rec  *rec = (struct lquota_acct_rec *)dtrec;
          __u64            id = *((__u64 *)dtkey);
          int          rc;
      #ifdef HAVE_DQUOT_KQID
          struct kqid     qid;
      #endif
      
          ENTRY;
      
          memset((void *)dqblk, 0, sizeof(struct obd_dqblk));
      

      Shouldn't that be ?

      memset(dqblk, 0, sizeof(*dqblk));
      

      or am I missing some subtlety?

      If it's a bug it's also probably not seen by the static analyser because of the unneeded void * cast.

      Attachments

        Activity

          People

            wc-triage WC Triage
            fzago Frank Zago (Inactive)
            Votes:
            0 Vote for this issue
            Watchers:
            4 Start watching this issue

            Dates

              Created:
              Updated:
              Resolved: