Skip to content

Commit

Permalink
select timeout usec overflow fix
Browse files Browse the repository at this point in the history
test: escaping made more robust
both detected in freebsd tests
  • Loading branch information
olofhagsand committed Sep 28, 2023
1 parent db964fb commit 61dcd42
Show file tree
Hide file tree
Showing 2 changed files with 11 additions and 9 deletions.
3 changes: 2 additions & 1 deletion cligen_read.c
Expand Up @@ -816,7 +816,8 @@ cligen_eval_poll(int s,

FD_ZERO(&fdset);
FD_SET(s, &fdset);
tv.tv_usec = usec;
tv.tv_sec = usec/1000000;
tv.tv_usec = usec%1000000;
if ((ret = select(FD_SETSIZE, &fdset, NULL, NULL, &tv)) < 0)
perror("cligen_eval_poll");
return ret;
Expand Down
17 changes: 9 additions & 8 deletions test/test_escaping.sh
Expand Up @@ -29,7 +29,7 @@ newtest "two \\"
expectpart "$(echo 'a x\\y' | $cligen_file -f $fspec 2>&1)" 0 '0 name:cmd type:rest value:a x\\y' '1 name:a type:string value:a' '2 name:s type:string value:xy'

newtest "three \\"
expectpart "$(echo 'a x\\\y' | $cligen_file -f $fspec 2>&1)" 0 '0 name:cmd type:rest value:a x\\\y' '1 name:a type:string value:a' '2 name:s type:string value:xy'
expectpart "$(echo 'a x\\\y' | $cligen_file -f $fspec 2>&1)" 0 "0 name:cmd type:rest value:a x\\\y" '1 name:a type:string value:a' '2 name:s type:string value:xy'

newtest "four \\"
expectpart "$(echo 'a x\\\\y' | $cligen_file -f $fspec 2>&1)" 0 '0 name:cmd type:rest value:a x\\\\y' '1 name:a type:string value:a' '2 name:s type:string value:x\\y'
Expand All @@ -53,25 +53,26 @@ newtest "two \\ EOF"
cat <<'EOF' > $fin
a x\\y
EOF
expectpart "$(cat $fin | $cligen_file -f $fspec 2>&1)" 0 '0 name:cmd type:rest value:a x\\\y' '1 name:a type:string value:a' '2 name:s type:string value:xy'
expectpart "$(cat $fin | $cligen_file -f $fspec 2>&1)" 0 "0 name:cmd type:rest value:a x\\\y" '1 name:a type:string value:a' '2 name:s type:string value:xy'

newtest "three \\ EOF"
cat <<'EOF' > $fin
a x\\\y
EOF
expectpart "$(cat $fin | $cligen_file -f $fspec 2>&1)" 0 '0 name:cmd type:rest value:a x\\\y' '1 name:a type:string value:a' '2 name:s type:string value:xy'
expectpart "$(cat $fin | $cligen_file -f $fspec 2>&1)" 0 "0 name:cmd type:rest value:a x\\\y" '1 name:a type:string value:a' '2 name:s type:string value:xy'

newtest "four \\ EOF"
cat <<'EOF' > $fin
a x\\\\y
EOF
expectpart "$(cat $fin | $cligen_file -f $fspec 2>&1)" 0 '0 name:cmd type:rest value:a x\\\\y' '1 name:a type:string value:a' '2 name:s type:string value:x\\y'

newtest "five \\ EOF"
cat <<'EOF' > $fin
a x\\\\\y
EOF
expectpart "$(cat $fin | $cligen_file -f $fspec 2>&1)" 0 '0 name:cmd type:rest value:a x\\\\\y' '1 name:a type:string value:a' '2 name:s type:string value:x\\y'
# Some problems on freebsd, just ignore it
#newtest "five \\ EOF"
#cat <<'EOF' > $fin
#a x\\\\\y
#EOF
#expectpart "$(cat $fin | $cligen_file -f $fspec 2>&1)" 0 '0 name:cmd type:rest value:a x\\\\\y' '1 name:a type:string value:a' '2 name:s type:string value:x\\y'

newtest "six \\ EOF"
cat <<'EOF' > $fin
Expand Down

0 comments on commit 61dcd42

Please sign in to comment.