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
kernel_printf: don't warn about void pointers
2018-03-26
D
an Ca
r
penter
k
ern
e
l_pr
i
ntf:
d
o
n't warn about void p
o
inte
r
s
Signed-off-by: Dan Carpenter <
dan.carpenter@oracle.com
>
commit
|
commitdiff
|
tree
2018-03-26
Dan C
a
rpenter
c
h
eak_leaks: handle re
t
urning
con
d
i
tionals
Signed-off-by: Dan Carpenter <
dan.carpenter@oracle.com
>
commit
|
commitdiff
|
tree
2018-03-26
Dan
Carpenter
math
:
introduc
e
a
n
ew c
a
che
of recently used con
s
t
a
nts
Signed-off-by: Dan Carpenter <
dan.carpenter@oracle.com
>
commit
|
commitdiff
|
tree
2018-03-26
D
a
n
C
arpente
r
math: hand
l
e __bui
l
ti
n
_constan
t
_
p() p
r
o
p
erly
Signed-off-by: Dan Carpenter <
dan.carpenter@oracle.com
>
commit
|
commitdiff
|
tree
2018-03-26
Dan
C
a
r
penter
m
a
th: alloc
a
ted
some
p
ermanent
range l
i
st
s
in rl_zer
o
.
.
.
Signed-off-by: Dan Carpenter <
dan.carpenter@oracle.com
>
commit
|
commitdiff
|
tree
2018-03-26
Dan
Carpenter
conditions:
Fix parsing
foo =
({
.
.
.
label: __ret; })
Signed-off-by: Dan Carpenter <
dan.carpenter@oracle.com
>
commit
|
commitdiff
|
tree
2018-03-14
Dan Carpent
e
r
function_
h
ooks: don't be too
a
m
bitiou
s
f
aki
n
g para
m
et
e
r
.
.
.
Signed-off-by: Dan Carpenter <
dan.carpenter@oracle.com
>
commit
|
commitdiff
|
tree
2018-03-12
Da
n
Carpenter
ranges/p
t
rlist: solve a l
e
ak
w
i
t
h
a big
hack
(
seco
n
d
.
.
.
Signed-off-by: Dan Carpenter <
dan.carpenter@oracle.com
>
commit
|
commitdiff
|
tree
2018-03-12
Dan Carpenter
allocate: use
u
n
sig
n
ed long to re
c
ord al
l
o
c
ations
Signed-off-by: Dan Carpenter <
dan.carpenter@oracle.com
>
commit
|
commitdiff
|
tree
2018-03-07
Dan Carpenter
de
r
ef_
c
h
e
c
k:
f
ix a small le
a
k
Signed-off-by: Dan Carpenter <
dan.carpenter@oracle.com
>
commit
|
commitdiff
|
tree
2018-03-07
D
an Carpenter
hooks
:
int
r
o
duce FUNCTION_CALL_HOOK
_
BEFORE
Signed-off-by: Dan Carpenter <
dan.carpenter@oracle.com
>
commit
|
commitdiff
|
tree
2018-03-07
Da
n
Carpenter
user_data: reading from an array do
e
s
n't necessarily
.
.
.
Signed-off-by: Dan Carpenter <
dan.carpenter@oracle.com
>
commit
|
commitdiff
|
tree
2018-03-07
Dan Carpenter
implied: introduce impossibl
e
_
a
s
sumption()
Signed-off-by: Dan Carpenter <
dan.carpenter@oracle.com
>
commit
|
commitdiff
|
tree
2018-03-07
Dan Ca
r
p
ente
r
buf_
s
ize:
d
on't save unnece
s
sar
y
states
Signed-off-by: Dan Carpenter <
dan.carpenter@oracle.com
>
commit
|
commitdiff
|
tree
2018-03-07
Dan
Carpenter
mtag: push all my changes
Signed-off-by: Dan Carpenter <
dan.carpenter@oracle.com
>
commit
|
commitdiff
|
tree
2018-03-07
Dan
C
a
rpenter
ranges:
f
ix
a leak
Signed-off-by: Dan Carpenter <
dan.carpenter@oracle.com
>
commit
|
commitdiff
|
tree
2018-03-07
D
a
n
C
arpenter
d
ebu
g
: add __
s
m
a
tch_state_count()
Signed-off-by: Dan Carpenter <
dan.carpenter@oracle.com
>
commit
|
commitdiff
|
tree
2018-03-06
Dan
Carpent
e
r
mo
d
ification_h
o
oks: don't save the express
i
ons
o
ut
s
ide
.
.
.
Signed-off-by: Dan Carpenter <
dan.carpenter@oracle.com
>
commit
|
commitdiff
|
tree
2018-03-06
Dan Carpenter
var_sym
:
twe
a
k expr_to_vsl()
Signed-off-by: Dan Carpenter <
dan.carpenter@oracle.com
>
commit
|
commitdiff
|
tree
2018-03-06
Dan Carpen
t
er
s
y
m
b
ol
.
h: let
is_ptr_
t
yp
e
() take NULL poi
n
ters
Signed-off-by: Dan Carpenter <
dan.carpenter@oracle.com
>
commit
|
commitdiff
|
tree
2018-03-06
Dan Carpenter
return_to_
p
ar
a
m: fix
a
crashing bug
Signed-off-by: Dan Carpenter <
dan.carpenter@oracle.com
>
commit
|
commitdiff
|
tree
2018-03-06
Da
n
Carpenter
s
truct_
a
s
signment/assigne
d
_exp
r
es
s
ion: save some mo
r
e
.
.
.
Signed-off-by: Dan Carpenter <
dan.carpenter@oracle.com
>
commit
|
commitdiff
|
tree
2018-03-06
D
an Carpe
n
t
er
expressions: free allocated expressio
n
s
a
fter the end
.
.
.
Signed-off-by: Dan Carpenter <
dan.carpenter@oracle.com
>
commit
|
commitdiff
|
tree
2018-03-05
D
an Carpenter
rose
n
be
r
g
: check
t
he correct alignment
Signed-off-by: Dan Carpenter <
dan.carpenter@oracle.com
>
commit
|
commitdiff
|
tree
2018-03-01
Dan Carp
e
n
t
er
Merge git
:
//git
.
kernel
.
org/pub/scm/dev
e
l/s
p
ars
e
/spar
s
e
.
.
.
Signed-off-by: Dan Carpenter <
dan.carpenter@oracle.com
>
commit
|
commitdiff
|
tree
2018-02-27
Dan Carpenter
mta
g
: fix build er
r
or
Signed-off-by: Dan Carpenter <
dan.carpenter@oracle.com
>
commit
|
commitdiff
|
tree
2018-02-22
Dan Carpenter
he
l
per: f
i
x segfault
p
arsing invalid code
Signed-off-by: Dan Carpenter <
dan.carpenter@oracle.com
>
commit
|
commitdiff
|
tree
2018-02-21
Dan Carpenter
type_val
:
dev_g
e
t_drvdata(
)
doesn't set the types
Signed-off-by: Dan Carpenter <
dan.carpenter@oracle.com
>
commit
|
commitdiff
|
tree
2018-02-21
Dan Carpe
n
ter
o
r
_vs_and: white s
p
ace cleanup
Signed-off-by: Dan Carpenter <
dan.carpenter@oracle.com
>
commit
|
commitdiff
|
tree
2018-02-21
Dan Carpe
n
ter
c
onditi
o
ns
:
pass SELECT_HOO
K
fo
r
select assign
m
ents
Signed-off-by: Dan Carpenter <
dan.carpenter@oracle.com
>
commit
|
commitdiff
|
tree
2018-02-21
Dan Carp
e
nter
estate: w
h
ite space clean up
Signed-off-by: Dan Carpenter <
dan.carpenter@oracle.com
>
commit
|
commitdiff
|
tree
2018-02-21
Dan Carpenter
constraints: allo
w
binop cons
t
rai
n
ts
Signed-off-by: Dan Carpenter <
dan.carpenter@oracle.com
>
commit
|
commitdiff
|
tree
2018-02-21
Dan Carpenter
smatch_co
m
pa
r
iso
n
: fi
x
a crashing bug
Signed-off-by: Dan Carpenter <
dan.carpenter@oracle.com
>
commit
|
commitdiff
|
tree
2018-02-21
D
a
n
Car
p
ente
r
check_kernel: h
a
ndle f
l
s(
)
Signed-off-by: Dan Carpenter <
dan.carpenter@oracle.com
>
commit
|
commitdiff
|
tree
2018-02-21
Dan Carpenter
e
x
tra: tight p
a
rameter values a
bit
Signed-off-by: Dan Carpenter <
dan.carpenter@oracle.com
>
commit
|
commitdiff
|
tree
2018-02-21
Dan Carpenter
extra: handle
"
if (
f
oo & 0x1) {"
Signed-off-by: Dan Carpenter <
dan.carpenter@oracle.com
>
commit
|
commitdiff
|
tree
2018-02-21
Dan Carpenter
extr
a
: don't set true/false states
i
f it
'
s the same
.
.
.
Signed-off-by: Dan Carpenter <
dan.carpenter@oracle.com
>
commit
|
commitdiff
|
tree
2018-02-21
D
an Carpent
e
r
im
p
lied: use as
s
ume()
e
ven
if the
r
e ar
e
no implications
Signed-off-by: Dan Carpenter <
dan.carpenter@oracle.com
>
commit
|
commitdiff
|
tree
2018-02-21
Dan Carpenter
math:
s
ilenc
e
hard m
a
x false positiv
e
s
Signed-off-by: Dan Carpenter <
dan.carpenter@oracle.com
>
commit
|
commitdiff
|
tree
2018-02-21
Dan Ca
r
penter
s
list:
don't pass stuff to pre_merge_hooks that isn
.
.
.
Signed-off-by: Dan Carpenter <
dan.carpenter@oracle.com
>
commit
|
commitdiff
|
tree
2018-02-21
Dan Carpenter
mta
g
: kill an endles
s
l
o
op
i
n
up coming code
Signed-off-by: Dan Carpenter <
dan.carpenter@oracle.com
>
commit
|
commitdiff
|
tree
2018-02-21
Dan Carpente
r
call_math: initialize some stri
n
g
s
Signed-off-by: Dan Carpenter <
dan.carpenter@oracle.com
>
commit
|
commitdiff
|
tree
2018-02-21
Dan Car
p
enter
fn_arg_
l
i
n
k
: fix an endles
s
loop
Signed-off-by: Dan Carpenter <
dan.carpenter@oracle.com
>
commit
|
commitdiff
|
tree
2018-02-20
D
an Carpenter
db: fix
a
segfault pars
i
ng inv
a
lid code
Signed-off-by: Dan Carpenter <
dan.carpenter@oracle.com
>
commit
|
commitdiff
|
tree
2018-02-19
Dan Carpenter
co
m
par
i
son: improv
e
handling
o
f "if (foo + 1
> limit) "
Signed-off-by: Dan Carpenter <
dan.carpenter@oracle.com
>
commit
|
commitdiff
|
tree
2018-02-16
Dan Carpe
n
te
r
db/com
p
arison:
Use mask informa
t
ion to get c
o
mparisons
Signed-off-by: Dan Carpenter <
dan.carpenter@oracle.com
>
commit
|
commitdiff
|
tree
2018-02-16
Dan Car
p
enter
com
p
a
rison: hand
l
e __sma
t
c
h
_compar
e
(
foo, bar -
1)
Signed-off-by: Dan Carpenter <
dan.carpenter@oracle.com
>
commit
|
commitdiff
|
tree
2018-02-16
Da
n
Carpenter
extra
:
cl
e
anup
handle_AN
D
_op()
Signed-off-by: Dan Carpenter <
dan.carpenter@oracle.com
>
commit
|
commitdiff
|
tree
2018-02-16
Dan Carpent
e
r
e
x
tra: c
l
ean
u
p handling "if
(f
o
o & 0x
1
) {"
Signed-off-by: Dan Carpenter <
dan.carpenter@oracle.com
>
commit
|
commitdiff
|
tree
2018-02-13
Dan Carpenter
user_data: silence
s
ome false
pos
i
tives with divides
Signed-off-by: Dan Carpenter <
dan.carpenter@oracle.com
>
commit
|
commitdiff
|
tree
2018-02-13
Dan Carpenter
user_data2:
silence
s
ome false
p
o
sitives ha
n
dling
ntohl
.
.
.
Signed-off-by: Dan Carpenter <
dan.carpenter@oracle.com
>
commit
|
commitdiff
|
tree
2018-02-13
Dan
C
arpenter
conditions: hac
k
around "if (foo | b
a
r) {"
(bitwise
OR)
Signed-off-by: Dan Carpenter <
dan.carpenter@oracle.com
>
commit
|
commitdiff
|
tree
2018-02-09
Da
n
C
arpenter
d
ata/kernel
.
ignore
_
m
acro_indenting: ignore tcp
_
skb_tsorted_r
.
.
.
Signed-off-by: Dan Carpenter <
dan.carpenter@oracle.com
>
commit
|
commitdiff
|
tree
2018-01-25
Dan Car
p
enter
db/
s
md
b
.
py
:
change some formatting
Signed-off-by: Dan Carpenter <
dan.carpenter@oracle.com
>
commit
|
commitdiff
|
tree
2018-01-25
Dan Carpenter
db/smdb
.
py: fix the PARAM
_
C
O
MPARE/LIMI
T
typ
e
s
Signed-off-by: Dan Carpenter <
dan.carpenter@oracle.com
>
commit
|
commitdiff
|
tree
2018-01-25
Dan C
a
rpenter
r
o
senberg: fix a c
r
ashing bug
Signed-off-by: Dan Carpenter <
dan.carpenter@oracle.com
>
commit
|
commitdiff
|
tree
2018-01-25
Dan
C
ar
p
enter
user_data2: d
o
a hack ar
o
und in the
p
r
e
_
m
e
r
g
e_hook()
Signed-off-by: Dan Carpenter <
dan.carpenter@oracle.com
>
commit
|
commitdiff
|
tree
2018-01-25
Dan Carpenter
co
n
straints: handle co
n
di
t
ions li
k
e "if (8
<
x
)
{"
Signed-off-by: Dan Carpenter <
dan.carpenter@oracle.com
>
commit
|
commitdiff
|
tree
2018-01-25
Dan Carpenter
expr
_
to_chunk
_
he
l
p
er: set *sym whe
n
there is only one
.
.
.
Signed-off-by: Dan Carpenter <
dan.carpenter@oracle.com
>
commit
|
commitdiff
|
tree
2018-01-25
Da
n
C
a
rpenter
slist:
allow sho
w
_sm() t
o
ac
c
ept NULL point
e
rs
Signed-off-by: Dan Carpenter <
dan.carpenter@oracle.com
>
commit
|
commitdiff
|
tree
2018-01-25
D
a
n
C
arpenter
f
low: don't fake an
im
p
ossi
b
le
default
Signed-off-by: Dan Carpenter <
dan.carpenter@oracle.com
>
commit
|
commitdiff
|
tree
2018-01-25
Da
n
Carpen
t
er
ty
p
e_v
a
l: r
e
cord fewer "unknow
n
" assignme
n
ts
Signed-off-by: Dan Carpenter <
dan.carpenter@oracle.com
>
commit
|
commitdiff
|
tree
2018-01-25
Dan Carpenter
flow: se
t
loop_
c
ount to zero when p
a
r
s
ing in
l
ine functions
Signed-off-by: Dan Carpenter <
dan.carpenter@oracle.com
>
commit
|
commitdiff
|
tree
2018-01-25
Dan Carpente
r
core: s
i
lence some
false posit
i
ves from parsing invalid
.
.
.
Signed-off-by: Dan Carpenter <
dan.carpenter@oracle.com
>
commit
|
commitdiff
|
tree
2018-01-19
Dan Carpente
r
implied
:
use
a time b
a
sed timeout
i
nst
e
a
d of counting
.
.
.
Signed-off-by: Dan Carpenter <
dan.carpenter@oracle.com
>
commit
|
commitdiff
|
tree
2018-01-19
D
a
n
Carp
e
nter
ext
r
a: hand
l
e loops
l
ik
e
: whi
l
e (--i >= 0)
{
Signed-off-by: Dan Carpenter <
dan.carpenter@oracle.com
>
commit
|
commitdiff
|
tree
2018-01-18
Dan Carpenter
function_ho
o
ks: fake
an ass
i
g
n
ment
w
hen fu
n
c
tions retu
r
n
.
.
.
Signed-off-by: Dan Carpenter <
dan.carpenter@oracle.com
>
commit
|
commitdiff
|
tree
2018-01-18
Dan Carpe
n
ter
check_free_s
t
rict: New stricter c
r
oss
f
unction u
s
e
.
.
.
Signed-off-by: Dan Carpenter <
dan.carpenter@oracle.com
>
commit
|
commitdiff
|
tree
2018-01-17
Dan C
a
r
penter
check_atom
i
c_i
n
c_dec: track atomic_i
n
c(
)
and atom
i
c_dec()
Signed-off-by: Dan Carpenter <
dan.carpenter@oracle.com
>
commit
|
commitdiff
|
tree
2018-01-17
Dan
C
arpenter
assigned_expr: han
d
le fake assignments
b
etter
Signed-off-by: Dan Carpenter <
dan.carpenter@oracle.com
>
commit
|
commitdiff
|
tree
2018-01-17
Dan Carpente
r
assi
g
ned_expr: rem
o
ve de
b
ug code
Signed-off-by: Dan Carpenter <
dan.carpenter@oracle.com
>
commit
|
commitdiff
|
tree
2018-01-16
Dan Car
p
en
t
er
kernel_printf: %px
is valid
Signed-off-by: Dan Carpenter <
dan.carpenter@oracle.com
>
commit
|
commitdiff
|
tree
2018-01-16
Dan Carpenter
stree: de
b
u
g
ging:
p
rint
the numb
e
r of stat
e
s in __prin
t
_stree()
Signed-off-by: Dan Carpenter <
dan.carpenter@oracle.com
>
commit
|
commitdiff
|
tree
2018-01-12
D
an C
a
rpenter
mt
a
g: commit all
mta
g
rel
a
t
e
d
c
ode t
o
d
ate
Signed-off-by: Dan Carpenter <
dan.carpenter@oracle.com
>
commit
|
commitdiff
|
tree
2018-01-12
Dan Carpen
t
er
smdb
.
p
y
:
fix some crashing bugs
Signed-off-by: Dan Carpenter <
dan.carpenter@oracle.com
>
commit
|
commitdiff
|
tree
2018-01-12
Dan
C
a
rpen
t
er
c
o
ntai
n
e
r_of:
h
andle fun
c
tion calls like f
o
o->b
a
r(foo
.
.
.
Signed-off-by: Dan Carpenter <
dan.carpenter@oracle.com
>
commit
|
commitdiff
|
tree
2018-01-12
Dan Carpenter
s
m
atch: get
t
h
e
s
match bin dir cor
r
ect
l
y w
h
e
n
i
t
's
.
.
.
Signed-off-by: Dan Carpenter <
dan.carpenter@oracle.com
>
commit
|
commitdiff
|
tree
2018-01-11
Dan Carpenter
user_da
t
a2:
empty states are no
t
user data
Signed-off-by: Dan Carpenter <
dan.carpenter@oracle.com
>
commit
|
commitdiff
|
tree
2018-01-11
D
an Carp
e
nter
constraints
_
required: im
p
rove handlin
g
of
a
ssigned
.
.
.
Signed-off-by: Dan Carpenter <
dan.carpenter@oracle.com
>
commit
|
commitdiff
|
tree
2018-01-11
D
an Carpenter
db
:
don't split by NULL vs non-NULL wh
e
n the
r
e are
.
.
.
Signed-off-by: Dan Carpenter <
dan.carpenter@oracle.com
>
commit
|
commitdiff
|
tree
2018-01-11
Dan Carpenter
flow: sto
r
e a backup
o
f the start time when parsing
.
.
.
Signed-off-by: Dan Carpenter <
dan.carpenter@oracle.com
>
commit
|
commitdiff
|
tree
2018-01-11
Dan Carpenter
helper: chang
e
some
n
o
nsense valu
e
s to other
nonsense
.
.
.
Signed-off-by: Dan Carpenter <
dan.carpenter@oracle.com
>
commit
|
commitdiff
|
tree
2018-01-11
Dan Ca
r
penter
DB: in
t
roduce a timeout
handling caller info
Signed-off-by: Dan Carpenter <
dan.carpenter@oracle.com
>
commit
|
commitdiff
|
tree
2018-01-11
Dan Ca
r
penter
address: fix handling of &foo->bar
Signed-off-by: Dan Carpenter <
dan.carpenter@oracle.com
>
commit
|
commitdiff
|
tree
2018-01-11
Dan
Car
p
e
n
ter
contstraint
s
: use cal
l
er
i
nfo
Signed-off-by: Dan Carpenter <
dan.carpenter@oracle.com
>
commit
|
commitdiff
|
tree
2018-01-11
D
an
Carpenter
c
o
nstraint
s
: move print_return_implies_constrain
e
d()
Signed-off-by: Dan Carpenter <
dan.carpenter@oracle.com
>
commit
|
commitdiff
|
tree
2018-01-11
D
a
n Carpenter
con
s
traints:
clean
u
p unmet_con
s
train
t
(
)
Signed-off-by: Dan Carpenter <
dan.carpenter@oracle.com
>
commit
|
commitdiff
|
tree
2018-01-11
Dan
C
arpenter
con
s
traints:
fix add_constraint()
Signed-off-by: Dan Carpenter <
dan.carpenter@oracle.com
>
commit
|
commitdiff
|
tree
2018-01-09
Dan
C
arpent
e
r
mtag: intr
o
duce create_mtag
_
alia
s
(
)
Signed-off-by: Dan Carpenter <
dan.carpenter@oracle.com
>
commit
|
commitdiff
|
tree
2018-01-08
Dan C
a
rpenter
mt
a
g:
fi
x
get_mta
g
() for record
e
d st
a
tes and
f
or a
r
rays
Signed-off-by: Dan Carpenter <
dan.carpenter@oracle.com
>
commit
|
commitdiff
|
tree
2018-01-08
D
an C
a
rpente
r
links:
no
need to record links outside
a
function call
Signed-off-by: Dan Carpenter <
dan.carpenter@oracle.com
>
commit
|
commitdiff
|
tree
2018-01-08
Da
n
Carp
e
nter
ty
p
e_val: cache DB info as a
spe
e
d up
Signed-off-by: Dan Carpenter <
dan.carpenter@oracle.com
>
commit
|
commitdiff
|
tree
2018-01-08
Dan Carpen
t
er
s
t
ri
n
g_list: preven
t
a use af
t
er fr
e
e
Signed-off-by: Dan Carpenter <
dan.carpenter@oracle.com
>
commit
|
commitdiff
|
tree
2017-12-14
D
a
n Carpen
t
er
m
t
ag:
r
e
n
a
m
e from
m
tags plural
to m
t
a
g
singular
Signed-off-by: Dan Carpenter <
dan.carpenter@oracle.com
>
commit
|
commitdiff
|
tree
2017-12-07
Dan Ca
r
penter
h
e
lp
e
r: kee
p
a small cac
h
e of
rec
e
ntly used variab
l
e
.
.
.
Signed-off-by: Dan Carpenter <
dan.carpenter@oracle.com
>
commit
|
commitdiff
|
tree
2017-12-07
Dan
Carp
e
nte
r
extra: pa
s
s expression pointer to
mod/nomod ho
o
ks
Signed-off-by: Dan Carpenter <
dan.carpenter@oracle.com
>
commit
|
commitdiff
|
tree
2017-12-07
Dan Carp
e
n
t
e
r
e
x
tra: write infrastructure to pas
s
ex
p
r t
o
no_mod
.
.
.
Signed-off-by: Dan Carpenter <
dan.carpenter@oracle.com
>
commit
|
commitdiff
|
tree
2017-12-07
Dan
C
a
rpenter
db/build_early_inde
x
.
sh
:
set up mor
e
mtag
i
ndex
e
s
Signed-off-by: Dan Carpenter <
dan.carpenter@oracle.com
>
commit
|
commitdiff
|
tree
2017-12-07
Dan Car
p
enter
exp
r
ession
s
: initialize ->me
m
ber_
o
ffs
e
t
(
) in
membe
r
_
expressio
n
()
Signed-off-by: Dan Carpenter <
dan.carpenter@oracle.com
>
commit
|
commitdiff
|
tree
2017-12-07
D
a
n C
a
rpenter
funct
i
on_
h
o
o
k
s:
set
p
ath impossib
l
e if we cull
e
verything
Signed-off-by: Dan Carpenter <
dan.carpenter@oracle.com
>
commit
|
commitdiff
|
tree
next