diff -urN e-smith-base-5.4.0.old/root/etc/e-smith/templates/var/service/wan/run.pppoe.conf/mlimit e-smith-base-5.4.0/root/etc/e-smith/templates/var/service/wan/run.pppoe.conf/mlimit --- e-smith-base-5.4.0.old/root/etc/e-smith/templates/var/service/wan/run.pppoe.conf/mlimit 2013-01-31 07:52:04.000000000 -0800 +++ e-smith-base-5.4.0/root/etc/e-smith/templates/var/service/wan/run.pppoe.conf/mlimit 2013-02-21 15:22:02.000000000 -0800 @@ -1,5 +1,15 @@ { -# memory limit to catch any memory leak before it kills the system - my $mlimit = $pppoe{Mlimit} || '100000000'; - $OUT = "PPPD_MLIMIT=$mlimit"; + # memory limit to catch any memory leak before it kills the system + use constant MIN_MEMORY_LIMIT => 100000000; + + # If there is a memory limit in the database and it is below the minimum, delete it. + if (defined $pppoe{Mlimit} && $pppoe{Mlimit} < MIN_MEMORY_LIMIT) + { + $DB->get_prop_and_delete('pppoe','Mlimit'); + delete $pppoe{Mlimit}; + } + + $OUT = "PPPD_MLIMIT="; + $OUT .= $pppoe{Mlimit} || MIN_MEMORY_LIMIT; } +