repo.or.cz
/
smatch.git
/
search
commit
grep
author
committer
pickaxe
?
search:
re
summary
|
log
|
graphiclog1
|
graphiclog2
|
commit
|
commitdiff
|
tree
|
refs
|
edit
|
fork
first
·
prev
·
next
extra: use PARAM_LIMIT to limit binops
2018-06-22
Dan
C
a
rpen
t
e
r
extra: use PARAM_LIMI
T
to limi
t
binops
Signed-off-by:
Dan Carpenter
<dan.carpenter@oracle.com>
commit
|
commitdiff
|
tree
2018-06-22
Dan Carpente
r
flow: nest
s
ome inl
i
n
e state
m
en
t
s
Signed-off-by:
Dan Carpenter
<dan.carpenter@oracle.com>
commit
|
commitdiff
|
tree
2018-06-22
D
an Carp
e
nter
modifica
t
ion_hooks
:
don
'
t
allow multipl
e
m
o
d
ificat
i
o
n
.
.
.
Signed-off-by:
Dan Carpenter
<dan.carpenter@oracle.com>
commit
|
commitdiff
|
tree
2018-06-21
Dan Carpe
n
ter
co
m
parison: don't save comparisons to
onese
l
f
Signed-off-by:
Dan Carpenter
<dan.carpenter@oracle.com>
commit
|
commitdiff
|
tree
2018-06-18
Dan Ca
r
pe
n
t
e
r
compari
s
o
n: add some par
e
nthesis
Signed-off-by:
Dan Carpenter
<dan.carpenter@oracle.com>
commit
|
commitdiff
|
tree
2018-06-18
Da
n
C
a
rp
e
nter
validati
o
n
: fix up
s
ome failures
Signed-off-by:
Dan Carpenter
<dan.carpenter@oracle.com>
commit
|
commitdiff
|
tree
2018-06-14
Dan Carpenter
c
ompar
i
so
n
: fix filter_by_compa
r
ison =
=
f
o
r rang
e
s
Signed-off-by:
Dan Carpenter
<dan.carpenter@oracle.com>
commit
|
commitdiff
|
tree
2018-06-14
Dan Carpenter
e
x
t
ra: just set sval assignment
s
di
r
e
ctl
y
Signed-off-by:
Dan Carpenter
<dan.carpenter@oracle.com>
commit
|
commitdiff
|
tree
2018-06-13
Dan Carp
e
n
t
er
check_spectre: ignore masked off dat
a
Signed-off-by:
Dan Carpenter
<dan.carpenter@oracle.com>
commit
|
commitdiff
|
tree
2018-06-13
Dan Carpenter
spectre:
u
se t
h
e new is
_
user_
r
l(
)
function
Signed-off-by:
Dan Carpenter
<dan.carpenter@oracle.com>
commit
|
commitdiff
|
tree
2018-06-13
D
a
n Carpenter
use
r
_dat
a
:
s
ilence some m
o
re ntohl(foo[i]
)
;
false p
o
siti
v
es
Signed-off-by:
Dan Carpenter
<dan.carpenter@oracle.com>
commit
|
commitdiff
|
tree
2018-06-13
Dan C
a
r
p
ent
e
r
user_dat
a
: silence some ss
c
anf() false positiv
e
s
Signed-off-by:
Dan Carpenter
<dan.carpenter@oracle.com>
commit
|
commitdiff
|
tree
2018-06-13
Dan Car
p
enter
user_
d
ata: introduce is_user_dat
a
()
Signed-off-by:
Dan Carpenter
<dan.carpenter@oracle.com>
commit
|
commitdiff
|
tree
2018-06-13
D
an C
a
rpenter
user
_
data: c
l
eanup
g
et_user_rl()
Signed-off-by:
Dan Carpenter
<dan.carpenter@oracle.com>
commit
|
commitdiff
|
tree
2018-06-07
Dan
Carpente
r
comparison:
fi
x
a NULL
d
er
e
fer
e
n
ce
Signed-off-by:
Dan Carpenter
<dan.carpenter@oracle.com>
commit
|
commitdiff
|
tree
2018-06-07
Dan
Carpen
t
er
comparis
o
n: fix v
a
lidat
i
on te
s
t
s
an
d
add a
new test
Signed-off-by:
Dan Carpenter
<dan.carpenter@oracle.com>
commit
|
commitdiff
|
tree
2018-06-06
Dan Carpenter
extra: remov
e
a
n
unneeded __set_
s
m() in db_param_limit_fil
t
e
r
Signed-off-by:
Dan Carpenter
<dan.carpenter@oracle.com>
commit
|
commitdiff
|
tree
2018-06-06
Dan Carpenter
hel
p
er:
s
t
rip out the byte
s
w
aps in s
t
rip_expr()
Signed-off-by:
Dan Carpenter
<dan.carpenter@oracle.com>
commit
|
commitdiff
|
tree
2018-06-06
Dan
Carpenter
validati
o
n/sm_
l
o
cking3:
f
ix function declaratio
n
s
Signed-off-by:
Dan Carpenter
<dan.carpenter@oracle.com>
commit
|
commitdiff
|
tree
2018-06-06
D
an Carpenter
unknown_va
l
ue:
c
l
e
ar the
-
>p
a
rent pointers
Signed-off-by:
Dan Carpenter
<dan.carpenter@oracle.com>
commit
|
commitdiff
|
tree
2018-06-06
Dan Carpenter
ranges: impr
o
ve str_to_compa
r
ison_
a
rg
_
h
elper()
Signed-off-by:
Dan Carpenter
<dan.carpenter@oracle.com>
commit
|
commitdiff
|
tree
2018-06-06
Dan Carpe
n
t
er
comparison
:
use smat
c
h_e
x
tra da
t
a in get_c
o
mp
a
r
i
son()
Signed-off-by:
Dan Carpenter
<dan.carpenter@oracle.com>
commit
|
commitdiff
|
tree
2018-06-06
Dan Carpen
t
er
comparison: improve h
a
ndling of "if (++j == li
m
it
)
"
Signed-off-by:
Dan Carpenter
<dan.carpenter@oracle.com>
commit
|
commitdiff
|
tree
2018-06-06
Dan C
a
rpente
r
compa
r
i
son: ha
n
dle j++ var sym lis
t
s better
Signed-off-by:
Dan Carpenter
<dan.carpenter@oracle.com>
commit
|
commitdiff
|
tree
2018-06-06
Da
n
C
arpenter
e
q
u
iv: type an
d
imp
l
icati
o
n fixe
s
Signed-off-by:
Dan Carpenter
<dan.carpenter@oracle.com>
commit
|
commitdiff
|
tree
2018-05-30
Dan
C
arpente
r
ranges: fix == and != comparisons
.
.
.
(
0_
0
)
Signed-off-by:
Dan Carpenter
<dan.carpenter@oracle.com>
commit
|
commitdiff
|
tree
2018-05-25
Dan Car
p
enter
r
eturn_
t
o_param:
fix parsing calls
Signed-off-by:
Dan Carpenter
<dan.carpenter@oracle.com>
commit
|
commitdiff
|
tree
2018-05-23
D
a
n Ca
r
pent
e
r
v
a
lidation: update t
e
sts
Signed-off-by:
Dan Carpenter
<dan.carpenter@oracle.com>
commit
|
commitdiff
|
tree
2018-05-15
Dan
C
arpenter
db: make c
a
ll_i
m
plie
s
r
o
ws unique
Signed-off-by:
Dan Carpenter
<dan.carpenter@oracle.com>
commit
|
commitdiff
|
tree
2018-05-14
Dan Carpenter
f
l
o
w
: remove
t
he call_split_expr() fu
n
ction
Signed-off-by:
Dan Carpenter
<dan.carpenter@oracle.com>
commit
|
commitdiff
|
tree
2018-05-14
Dan Carpenter
extra:
hand
l
e com
p
arisons to express
i
o
n
statemen
t
s
Signed-off-by:
Dan Carpenter
<dan.carpenter@oracle.com>
commit
|
commitdiff
|
tree
2018-05-14
Da
n
Carp
e
nter
d
b
/fill_db_caller_in
f
o
.
pl: don't p
e
rma-ban functio
n
s
.
.
.
Signed-off-by:
Dan Carpenter
<dan.carpenter@oracle.com>
commit
|
commitdiff
|
tree
2018-05-14
Dan Carpenter
d
b/fixup_kern
e
l
.
sh:
commit all my stuff
Signed-off-by:
Dan Carpenter
<dan.carpenter@oracle.com>
commit
|
commitdiff
|
tree
2018-05-14
Da
n
C
a
rpenter
function_ptrs: r
e
cor
d
local
p
ointer scope correctly
Signed-off-by:
Dan Carpenter
<dan.carpenter@oracle.com>
commit
|
commitdiff
|
tree
2018-05-14
Dan Carpe
n
t
er
real_absolut
e
: don't save single
v
alue
as
s
igns
Signed-off-by:
Dan Carpenter
<dan.carpenter@oracle.com>
commit
|
commitdiff
|
tree
2018-05-14
Dan Carpenter
sval: fix a b
u
g
in sval_too_low()
Signed-off-by:
Dan Carpenter
<dan.carpenter@oracle.com>
commit
|
commitdiff
|
tree
2018-05-14
Dan
Ca
r
pe
n
ter
db: introduce db_ignore_states()
Signed-off-by:
Dan Carpenter
<dan.carpenter@oracle.com>
commit
|
commitdiff
|
tree
2018-05-14
Dan Ca
r
p
e
nte
r
d
b
/untra
c
ked_par
a
m: mark
p
arameters untracked i
f
we
.
.
.
Signed-off-by:
Dan Carpenter
<dan.carpenter@oracle.com>
commit
|
commitdiff
|
tree
2018-05-14
Dan Carpenter
flo
w
:
don't p
a
rse inlin
e
f
unctions whi
c
h a
r
en't intere
s
ting
Signed-off-by:
Dan Carpenter
<dan.carpenter@oracle.com>
commit
|
commitdiff
|
tree
2018-04-23
Dan Carpenter
db/con
s
tra
i
nts_req
u
i
r
ed
.
sch
e
m
a: add missing semi-c
o
l
on
Signed-off-by:
Dan Carpenter
<dan.carpenter@oracle.com>
commit
|
commitdiff
|
tree
2018-04-20
D
a
n
Carpenter
flow/expressions/func
t
ion_hooks: re-fix is_assigned_call
(
)
Signed-off-by:
Dan Carpenter
<dan.carpenter@oracle.com>
commit
|
commitdiff
|
tree
2018-04-20
D
a
n
Carpent
e
r
kernel: handle __read_once_size()
Signed-off-by:
Dan Carpenter
<dan.carpenter@oracle.com>
commit
|
commitdiff
|
tree
2018-04-20
Dan Carpenter
m
a
th
:
fi
x
a get_val
u
e() bu
g
Signed-off-by:
Dan Carpenter
<dan.carpenter@oracle.com>
commit
|
commitdiff
|
tree
2018-04-19
Dan
C
a
r
p
e
nter
ex
p
ressions:
make assign_expression() take
a
n
o
p argumen
t
Signed-off-by:
Dan Carpenter
<dan.carpenter@oracle.com>
commit
|
commitdiff
|
tree
2018-04-18
D
a
n Carpenter
spectre:
warn about potential spec
t
re vulnerabi
l
ities
Signed-off-by:
Dan Carpenter
<dan.carpenter@oracle.com>
commit
|
commitdiff
|
tree
2018-04-18
Dan Carpenter
e
x
p
ressions: don't
set the ->p
a
ren
t
to
a
fake expression
Signed-off-by:
Dan Carpenter
<dan.carpenter@oracle.com>
commit
|
commitdiff
|
tree
2018-04-17
Dan Ca
r
penter
e
x
p
r
essions: just al
l
ocate zero_ex
p
r() f
r
esh
every
.
.
.
Signed-off-by:
Dan Carpenter
<dan.carpenter@oracle.com>
commit
|
commitdiff
|
tree
2018-04-16
Dan Carpenter
expression/smatch_
e
xpress
i
ons: move expr_set/get_parent
.
.
.
Signed-off-by:
Dan Carpenter
<dan.carpenter@oracle.com>
commit
|
commitdiff
|
tree
2018-04-12
Dan Carpenter
or_vs_and: tidy up wh
i
tespace
Signed-off-by:
Dan Carpenter
<dan.carpenter@oracle.com>
commit
|
commitdiff
|
tree
2018-04-12
D
a
n Carp
e
nter
o
r
_vs
_
and: min_t
(
)
u
s
es the new m
i
n() code as well
Signed-off-by:
Dan Carpenter
<dan.carpenter@oracle.com>
commit
|
commitdiff
|
tree
2018-04-11
Dan Carpenter
check_or_vs_and: ignore th
e
kernel's
min
/
max macros
Signed-off-by:
Dan Carpenter
<dan.carpenter@oracle.com>
commit
|
commitdiff
|
tree
2018-04-11
Dan
C
arpenter
flow/mat
h
: handle __builtin_ch
o
os
e
_
ex
p
r
(
)
Signed-off-by:
Dan Carpenter
<dan.carpenter@oracle.com>
commit
|
commitdiff
|
tree
2018-04-10
Dan Carpenter
v
a
l
idation/overf
l
o
w:
c
h
a
nge "warn:" to
"
err
o
r:"
Signed-off-by:
Dan Carpenter
<dan.carpenter@oracle.com>
commit
|
commitdiff
|
tree
2018-04-10
Dan Carpenter
about_fn_ptr_arg: don't get into a
recursive loop
Signed-off-by:
Dan Carpenter
<dan.carpenter@oracle.com>
commit
|
commitdiff
|
tree
2018-04-09
Dan C
a
rpe
n
ter
helper:
a
dd get_last_statement_
f
r
om_expre
s
sion
_
stmt
.
.
.
Signed-off-by:
Dan Carpenter
<dan.carpenter@oracle.com>
commit
|
commitdiff
|
tree
2018-04-09
Dan
C
a
rpenter
mem_tr
a
cker: add
a
--mem opt
i
on to
d
ebu
g
m
e
m
o
ry
use
.
.
.
Signed-off-by:
Dan Carpenter
<dan.carpenter@oracle.com>
commit
|
commitdiff
|
tree
2018-04-09
Da
n
Carpenter
e
x
pre
s
sions: r
e
move some un
n
ecessary gotos
Signed-off-by:
Dan Carpenter
<dan.carpenter@oracle.com>
commit
|
commitdiff
|
tree
2018-04-09
Dan Ca
r
penter
helper
:
improve i
s
_error_
r
eturn()
.
In the kernel a
l
l
.
.
.
Signed-off-by:
Dan Carpenter
<dan.carpenter@oracle.com>
commit
|
commitdiff
|
tree
2018-04-09
Dan Carpenter
smat
c
h_data/
s
match
.
comm
o
n
_functions: add some comm
o
n
.
.
.
Signed-off-by:
Dan Carpenter
<dan.carpenter@oracle.com>
commit
|
commitdiff
|
tree
2018-04-09
Da
n
Carpenter
smatch_data/kernel
.
ignored_macros: add
AA_BUG(
)
Signed-off-by:
Dan Carpenter
<dan.carpenter@oracle.com>
commit
|
commitdiff
|
tree
2018-04-09
Dan
C
arpenter
smatch_data
/
ker
n
el
.
ignore
_
unini
t
ialized par
a
ms: ad
d
.
.
.
Signed-off-by:
Dan Carpenter
<dan.carpenter@oracle.com>
commit
|
commitdiff
|
tree
2018-04-09
Dan Carpen
t
er
s
m
atch_da
t
a
/
kernel
.
i
gnore_side_effects add recent macros
Signed-off-by:
Dan Carpenter
<dan.carpenter@oracle.com>
commit
|
commitdiff
|
tree
2018-04-09
Dan
C
a
rpen
t
er
compariso
n
:
handle expression st
a
tements b
e
t
t
er
Signed-off-by:
Dan Carpenter
<dan.carpenter@oracle.com>
commit
|
commitdiff
|
tree
2018-04-09
D
a
n
Carpent
e
r
c
omparison:
remove
some debug code
Signed-off-by:
Dan Carpenter
<dan.carpenter@oracle.com>
commit
|
commitdiff
|
tree
2018-04-09
D
a
n
Carpenter
comp
a
r
i
s
on: introdu
c
e
i
mpossibl
y
_high_com
p
arison()
.
.
.
Signed-off-by:
Dan Carpenter
<dan.carpenter@oracle.com>
commit
|
commitdiff
|
tree
2018-04-05
Dan Carpenter
ignore: fix
&
& vs ||
t
y
p
o
Signed-off-by:
Dan Carpenter
<dan.carpenter@oracle.com>
commit
|
commitdiff
|
tree
2018-03-29
Dan Carpenter
i
nde
x
_overf
l
o
w
: a
l
most a re-write
Signed-off-by:
Dan Carpenter
<dan.carpenter@oracle.com>
commit
|
commitdiff
|
tree
2018-03-26
Dan Carpenter
implie
d
: improv
e
handling of assi
g
nme
n
ts
i
n
a
rguments
Signed-off-by:
Dan Carpenter
<dan.carpenter@oracle.com>
commit
|
commitdiff
|
tree
2018-03-26
Dan C
a
rpenter
k
e
r
n
e
l_p
r
i
n
tf:
d
o
n
't
w
arn about vo
i
d poi
n
ter
s
Signed-off-by:
Dan Carpenter
<dan.carpenter@oracle.com>
commit
|
commitdiff
|
tree
2018-03-26
Dan
Carpen
t
er
cheak_leaks: ha
n
dle returning
c
o
n
diti
o
n
a
ls
Signed-off-by:
Dan Carpenter
<dan.carpenter@oracle.com>
commit
|
commitdiff
|
tree
2018-03-26
D
a
n Carpenter
math: introduce
a
new cache of recentl
y
used constan
t
s
Signed-off-by:
Dan Carpenter
<dan.carpenter@oracle.com>
commit
|
commitdiff
|
tree
2018-03-26
Dan Ca
r
pente
r
m
a
th
:
handle
__b
u
iltin
_
constant_p() proper
l
y
Signed-off-by:
Dan Carpenter
<dan.carpenter@oracle.com>
commit
|
commitdiff
|
tree
2018-03-26
D
a
n
Car
p
enter
m
ath: all
o
cate
d
some perma
n
e
n
t range
lists
i
n
rl_zero
.
.
.
Signed-off-by:
Dan Carpenter
<dan.carpenter@oracle.com>
commit
|
commitdiff
|
tree
2018-03-26
Dan Ca
r
penter
condi
t
io
n
s: Fix par
s
in
g
f
o
o = ({
.
.
.
la
b
el
:
__
r
et; })
Signed-off-by:
Dan Carpenter
<dan.carpenter@oracle.com>
commit
|
commitdiff
|
tree
2018-03-14
Dan Ca
r
penter
function_h
o
ok
s
:
d
o
n
't be too amb
i
tious
fa
k
i
n
g paramet
e
r
.
.
.
Signed-off-by:
Dan Carpenter
<dan.carpenter@oracle.com>
commit
|
commitdiff
|
tree
2018-03-12
D
a
n
Carpe
n
ter
ran
g
e
s/
p
trlist:
sol
v
e a leak with
a
big
h
ack (seco
n
d
.
.
.
Signed-off-by:
Dan Carpenter
<dan.carpenter@oracle.com>
commit
|
commitdiff
|
tree
2018-03-12
Da
n
Carpen
t
er
a
l
loca
t
e: use unsigned
long to record allocations
Signed-off-by:
Dan Carpenter
<dan.carpenter@oracle.com>
commit
|
commitdiff
|
tree
2018-03-07
Da
n
C
a
rpenter
der
e
f_check: fix a
sma
l
l leak
Signed-off-by:
Dan Carpenter
<dan.carpenter@oracle.com>
commit
|
commitdiff
|
tree
2018-03-07
Dan C
a
rp
e
nter
h
o
oks: intro
d
uc
e
F
U
NCTIO
N
_
CALL_HOOK_BEFORE
Signed-off-by:
Dan Carpenter
<dan.carpenter@oracle.com>
commit
|
commitdiff
|
tree
2018-03-07
Dan Carp
e
nter
use
r
_data: reading
f
rom
an array do
e
sn't
n
ecessarily
.
.
.
Signed-off-by:
Dan Carpenter
<dan.carpenter@oracle.com>
commit
|
commitdiff
|
tree
2018-03-07
Dan Carpent
e
r
implied: introduce impossible_assumption()
Signed-off-by:
Dan Carpenter
<dan.carpenter@oracle.com>
commit
|
commitdiff
|
tree
2018-03-07
Dan Carpenter
buf_size: don't
save unn
e
cessary states
Signed-off-by:
Dan Carpenter
<dan.carpenter@oracle.com>
commit
|
commitdiff
|
tree
2018-03-07
Dan Ca
r
penter
mtag: push all my chan
g
es
Signed-off-by:
Dan Carpenter
<dan.carpenter@oracle.com>
commit
|
commitdiff
|
tree
2018-03-07
Dan
C
a
rpenter
ranges: fix a leak
Signed-off-by:
Dan Carpenter
<dan.carpenter@oracle.com>
commit
|
commitdiff
|
tree
2018-03-07
Dan Carp
e
n
ter
debu
g
: add __smatch
_
state_cou
n
t()
Signed-off-by:
Dan Carpenter
<dan.carpenter@oracle.com>
commit
|
commitdiff
|
tree
2018-03-06
Dan Carpenter
modification_hooks: d
o
n
'
t save th
e
expressions
outside
.
.
.
Signed-off-by:
Dan Carpenter
<dan.carpenter@oracle.com>
commit
|
commitdiff
|
tree
2018-03-06
Dan Carpenter
var
_
sym
:
t
wea
k
expr
_
to_vs
l
()
Signed-off-by:
Dan Carpenter
<dan.carpenter@oracle.com>
commit
|
commitdiff
|
tree
2018-03-06
Dan Car
p
enter
symbol
.
h
:
let is_ptr_type
(
) ta
k
e NULL
p
ointers
Signed-off-by:
Dan Carpenter
<dan.carpenter@oracle.com>
commit
|
commitdiff
|
tree
2018-03-06
Dan Carpenter
return_to_param:
fix a crashi
n
g bug
Signed-off-by:
Dan Carpenter
<dan.carpenter@oracle.com>
commit
|
commitdiff
|
tree
2018-03-06
Dan Carpenter
struc
t
_assignmen
t
/assigne
d
_exp
r
ession: save
s
ome more
.
.
.
Signed-off-by:
Dan Carpenter
<dan.carpenter@oracle.com>
commit
|
commitdiff
|
tree
2018-03-06
D
a
n Carpenter
expression
s
: free allocated express
i
ons after the end
.
.
.
Signed-off-by:
Dan Carpenter
<dan.carpenter@oracle.com>
commit
|
commitdiff
|
tree
2018-03-05
Dan Carpent
e
r
ro
s
enberg: check the
c
orrect
alignment
Signed-off-by:
Dan Carpenter
<dan.carpenter@oracle.com>
commit
|
commitdiff
|
tree
2018-03-01
Dan Car
p
en
t
er
Merge git://g
i
t
.
kernel
.
o
rg/pub/scm/devel/spars
e
/sparse
.
.
.
Signed-off-by:
Dan Carpenter
<dan.carpenter@oracle.com>
commit
|
commitdiff
|
tree
2018-02-27
Dan
C
arp
e
nter
mtag: fix
b
u
i
ld er
r
or
Signed-off-by:
Dan Carpenter
<dan.carpenter@oracle.com>
commit
|
commitdiff
|
tree
2018-02-22
D
a
n
Ca
r
penter
h
elper: fi
x
segfault parsing in
v
alid code
Signed-off-by:
Dan Carpenter
<dan.carpenter@oracle.com>
commit
|
commitdiff
|
tree
2018-02-21
Dan
C
a
r
penter
type_val: dev_get_drvda
t
a() doesn't set the types
Signed-off-by:
Dan Carpenter
<dan.carpenter@oracle.com>
commit
|
commitdiff
|
tree
2018-02-21
Dan Carpenter
or_vs_and: white space cleanup
Signed-off-by:
Dan Carpenter
<dan.carpenter@oracle.com>
commit
|
commitdiff
|
tree
2018-02-21
D
an
Carpenter
con
d
i
t
i
o
n
s
:
pass SELECT_HOOK for select
assignments
Signed-off-by:
Dan Carpenter
<dan.carpenter@oracle.com>
commit
|
commitdiff
|
tree
2018-02-21
D
a
n
Carpe
n
ter
e
s
tate: whit
e
sp
a
ce clean up
Signed-off-by:
Dan Carpenter
<dan.carpenter@oracle.com>
commit
|
commitdiff
|
tree
2018-02-21
Dan Carpenter
constraint
s
:
al
l
o
w
binop c
o
nst
r
aints
Signed-off-by:
Dan Carpenter
<dan.carpenter@oracle.com>
commit
|
commitdiff
|
tree
next