Skip to content
  • Jeff Layton's avatar
    cifs: ensure that vol->username is not NULL before running strlen on it · 08b37d51
    Jeff Layton authored
    Dan Carpenter says:
    
    The patch 04febabc
    
    : "cifs: sanitize username handling" from Jan
    17, 2012, leads to the following static checker warning:
    
    	fs/cifs/connect.c:2231 match_session()
    	error: we previously assumed 'vol->username' could be null (see line 2228)
    
    fs/cifs/connect.c
      2219                  /* NULL username means anonymous session */
      2220                  if (ses->user_name == NULL) {
      2221                          if (!vol->nullauth)
      2222                                  return 0;
      2223                          break;
      2224                  }
      2225
      2226                  /* anything else takes username/password */
      2227                  if (strncmp(ses->user_name,
      2228                              vol->username ? vol->username : "",
                                        ^^^^^^^^^^^^^
    We added this check for vol->username here.
    
      2229                              CIFS_MAX_USERNAME_LEN))
      2230                          return 0;
      2231                  if (strlen(vol->username) != 0 &&
                                       ^^^^^^^^^^^^^
    But this dereference is not checked.
    
      2232                      ses->password != NULL &&
      2233                      strncmp(ses->password,
      2234                              vol->password ? vol->password : "",
      2235                              CIFS_MAX_PASSWORD_LEN))
      2236                          return 0;
    
    ...fix this by ensuring that vol->username is not NULL before running
    strlen on it.
    
    Signed-off-by: default avatarJeff Layton <jlayton@poochiereds.net>
    Reported-by: default avatarDan Carpenter <dan.carpenter@oracle.com>
    Signed-off-by: default avatarSteve French <smfrench@gmail.com>
    08b37d51