2022-06-03 9:10 GMT+09:00, Dan Carpenter <dan.carpenter@xxxxxxxxxx>: > On Fri, Jun 03, 2022 at 08:18:19AM +0900, Namjae Jeon wrote: >> 2022-06-02 19:51 GMT+09:00, Dan Carpenter <dan.carpenter@xxxxxxxxxx>: >> > @@ -428,9 +429,9 @@ static int ksmbd_vfs_stream_write(struct ksmbd_file >> > *fp, >> > char *buf, loff_t *pos, >> > fp->stream.name, >> > fp->stream.size, >> > &stream_buf); >> > - if ((int)v_len < 0) { >> > + if (v_len < 0) { >> > pr_err("not found stream in xattr : %zd\n", v_len); >> > - err = (int)v_len; >> > + err = v_len; >> Data type of ssize_t is long. Wouldn't some static checker warn us >> that this is a problem? > > None that I know of. > > To a human reader, the cast isn't needed because when a function returns > ssize_t the negatives can only be error codes in the (-4095)-(-1) range. > No other negative sizes make sense. > > On the other hand, the "if ((int)v_len < 0) {" line really should > trigger a static checker because there are times when sizes could be > over 2GB. I will write down that I need to create that checker. Okay, And there is a similar type casting in ksmbd_vfs_stream_read(). Is it not necessary to change together? > > regards, > dan carpenter > >