Skip to content
Snippets Groups Projects
Select Git revision
  • experimental
  • master
  • v2021.1.2-ffs
  • v2021.1.1-ffs
  • nrb/gluon-master-cpe510
  • v2021.1-ffs
  • v2020.2.3-ffs
  • nrbffs/fastd-remove-delay
  • v2020.2.2-ffs
  • v2020.2.1-ffs
  • v2020.2-ffs
  • v2020.2.x
  • v2020.1.3-ffs
  • v2020.1.1-ffs
  • v2020.1-ffs
  • v2019.1.2-ffs
  • v2019.1.1-ffs
  • nrb/test-radv-filter
  • v2019.1-ffs
  • nrbffs/netgear-ex6120
  • v2021.1.2-ffs0.2
  • v2021.1.2-ffs0.1
  • v2021.1.1-ffs0.4
  • v2021.1.1-ffs0.3
  • v2021.1.1-ffs0.2
  • v2021.1.1-ffs0.1
  • v2021.1-ffs0.1
  • v2020.2.3-ffs0.3
  • v2020.2.3-ffs0.2
  • v2020.2.3-ffs0.1
  • v2020.2.2-ffs0.1
  • v2020.2.1-ffs0.1
  • v2020.2-ffs0.1
  • v2020.2
  • v2020.2.x-ffs0.1
  • v2020.1.3-ffs0.1
  • v2020.1.1-ffs0.1
  • v2020.1-ffs0.1
  • v2019.1.2-ffs0.1
  • v2019.1.1-ffs0.1
40 results

gluon-crond.c

Blame
  • Forked from firmware / FFS Gluon
    Source project has a limited visibility.
    • Jan-Philipp Litza's avatar
      afce06c3
      gluon-cron: Fix endless loop parsing invalid lines · afce06c3
      Jan-Philipp Litza authored
      Using the line
      ```
      * * * * echo "foobar"
      ```
      (notice the missing fifth time field) in a crontab causes gluon-cron
      to enter an endless loop while parsing it, thus it won't even execute
      the other, valid crontabs.
      
      This is caused by the loop in [line 138] where `begin - min`
      substracts the unsigned `min` from the signed `begin`. If now `begin`
      is invalid, `strict_atoi` returns -1 and the loop starts at
      `(-1)-1=MAX_INT` and runs while `i <= MAX_INT` which is always true.
      
      The real culprit lies in [line 134] where exactly this case
      `begin < min` is checked - but because of the signedness, this check doesn't
      work as expected either.
      
      The easiest solution is to make `min` a signed integer instead of an unsigned
      one, as we do not require it to be very large and only pass the constants 0 or
      1 to it.
      
      To avoid other similar problems, this patch makes the input variable `n` a
      signed integer as well.
      afce06c3
      History
      gluon-cron: Fix endless loop parsing invalid lines
      Jan-Philipp Litza authored
      Using the line
      ```
      * * * * echo "foobar"
      ```
      (notice the missing fifth time field) in a crontab causes gluon-cron
      to enter an endless loop while parsing it, thus it won't even execute
      the other, valid crontabs.
      
      This is caused by the loop in [line 138] where `begin - min`
      substracts the unsigned `min` from the signed `begin`. If now `begin`
      is invalid, `strict_atoi` returns -1 and the loop starts at
      `(-1)-1=MAX_INT` and runs while `i <= MAX_INT` which is always true.
      
      The real culprit lies in [line 134] where exactly this case
      `begin < min` is checked - but because of the signedness, this check doesn't
      work as expected either.
      
      The easiest solution is to make `min` a signed integer instead of an unsigned
      one, as we do not require it to be very large and only pass the constants 0 or
      1 to it.
      
      To avoid other similar problems, this patch makes the input variable `n` a
      signed integer as well.