@@ -73,32 +73,31 @@ function insert($event_name,$data) {
7373
7474 $ this ->update_config ();
7575
76- exec ("/usr/lib/mailman/bin/newlist -u " .$ data ["new " ]["domain " ]." -e " .$ data ["new " ]["domain " ]." " .$ data ["new " ]["listname " ]." " .$ data ["new " ]["email " ]." " .$ data ["new " ]["password " ]."" );
76+ exec ("/usr/lib/mailman/bin/newlist -u " .escapeshellcmd ( $ data ["new " ]["domain " ]) ." -e " .escapeshellcmd ( $ data ["new " ]["domain " ]) ." " .escapeshellcmd ( $ data ["new " ]["listname " ]) ." " .escapeshellcmd ( $ data ["new " ]["email " ]) ." " .escapeshellcmd ( $ data ["new " ]["password " ]) ."" );
7777
7878 exec ($ conf ['init_scripts ' ] . '/ ' . 'mailman reload &> /dev/null ' );
7979
80- $ app ->db ->query ("UPDATE mail_mailinglist SET password = '' WHERE mailinglist_id = " .$ data ["new " ]['mailinglist_id ' ]);
80+ $ app ->db ->query ("UPDATE mail_mailinglist SET password = '' WHERE mailinglist_id = " .$ app -> db -> quote ( $ data ["new " ]['mailinglist_id ' ]) );
8181
8282 }
8383
8484 // The purpose of this plugin is to rewrite the main.cf file
8585 function update ($ event_name ,$ data ) {
8686 global $ app , $ conf ;
8787
88- exec ("/usr/lib/mailman/bin/change_pw -l " .$ data ["new " ]["listname " ]." -p " .$ data ["new " ]["password " ]."" );
89-
90- exec ($ conf ['init_scripts ' ] . '/ ' . 'mailman reload &> /dev/null ' );
91-
92- $ app ->db ->query ("UPDATE mail_mailinglist SET password = '' WHERE mailinglist_id = " .$ data ["new " ]['mailinglist_id ' ]);
93-
88+ if ($ data ["new " ]["password " ] != $ data ["old " ]["password " ] && $ data ["new " ]["password " ] != '' ) {
89+ exec ("/usr/lib/mailman/bin/change_pw -l " .escapeshellcmd ($ data ["new " ]["listname " ])." -p " .escapeshellcmd ($ data ["new " ]["password " ])."" );
90+ exec ($ conf ['init_scripts ' ] . '/ ' . 'mailman reload &> /dev/null ' );
91+ $ app ->db ->query ("UPDATE mail_mailinglist SET password = '' WHERE mailinglist_id = " .$ app ->db ->quote ($ data ["new " ]['mailinglist_id ' ]));
92+ }
9493 }
9594
9695 function delete ($ event_name ,$ data ) {
9796 global $ app , $ conf ;
9897
9998 $ this ->update_config ();
10099
101- exec ("/usr/lib/mailman/bin/rmlist -a " .$ data ["old " ]["listname " ]);
100+ exec ("/usr/lib/mailman/bin/rmlist -a " .escapeshellcmd ( $ data ["old " ]["listname " ]) );
102101
103102 exec ($ conf ['init_scripts ' ] . '/ ' . 'mailman reload &> /dev/null ' );
104103
0 commit comments