diff --git a/fs/proc/os_adapt/fd_proc.c b/fs/proc/os_adapt/fd_proc.c index b0ff2ba4..d357227a 100644 --- a/fs/proc/os_adapt/fd_proc.c +++ b/fs/proc/os_adapt/fd_proc.c @@ -75,7 +75,7 @@ static void FillFdInfo(struct SeqBuf *seqBuf, struct filelist *fileList, unsigne } if (hasPrivilege) { - (void)LosBufPrintf(seqBuf, "%u\t%d\t%6d <%d>\t%s\n", pid, fd, sysFd, filp->f_refcount, name); + (void)LosBufPrintf(seqBuf, "%u\t%d\t%6d <%d>\t%s\n", pid, fd, sysFd, filp ? filp->f_refcount : 1, name); } else { (void)LosBufPrintf(seqBuf, "%u\t%d\t%s\n", pid, fd, name); } diff --git a/fs/vfs/operation/vfs_cloexec.c b/fs/vfs/operation/vfs_cloexec.c index 0943aa7a..f69edecb 100644 --- a/fs/vfs/operation/vfs_cloexec.c +++ b/fs/vfs/operation/vfs_cloexec.c @@ -50,7 +50,10 @@ void CloseOnExec(struct files_struct *files) if (FD_ISSET(i, files->fdt->proc_fds) && FD_ISSET(i, files->fdt->cloexec_fds)) { sysFd = DisassociateProcessFd(i); - close(sysFd); + if (sysFd >= 0) { + close(sysFd); + } + FreeProcessFd(i); } } diff --git a/fs/vfs/operation/vfs_force_umount.c b/fs/vfs/operation/vfs_force_umount.c index 609bee39..5d0d385a 100644 --- a/fs/vfs/operation/vfs_force_umount.c +++ b/fs/vfs/operation/vfs_force_umount.c @@ -265,6 +265,10 @@ static struct Mount* GetDevMountPoint(struct Vnode *dev) { struct Mount *mnt = NULL; LIST_HEAD *mntList = GetMountList(); + if (mntList == NULL) { + return NULL; + } + LOS_DL_LIST_FOR_EACH_ENTRY(mnt, mntList, struct Mount, mountList) { if (mnt->vnodeDev == dev) { return mnt; @@ -302,7 +306,7 @@ static void FileDisableAndClean(struct Mount *mnt) { struct filelist *flist = &tg_filelist; struct file *filep = NULL; - const struct file_operations_vfs *originOps; + const struct file_operations_vfs *originOps = NULL; for (int i = 3; i < CONFIG_NFILE_DESCRIPTORS; i++) { if (!get_bit(i)) { @@ -355,7 +359,7 @@ static void VnodeTryFreeAll(struct Mount *mount) int ForceUmountDev(struct Vnode *dev) { int ret; - struct Vnode *origin; + struct Vnode *origin = NULL; struct filelist *flist = &tg_filelist; if (dev == NULL) { return -EINVAL;