From:             yolcoyama at gmail dot com
Operating system: Linux ubo 2.6.28-11-generic
PHP version:      5.2.9
PHP Bug Type:     Filesystem function related
Bug description:  Wrong error number returned by system, passthru functions

Description:
------------
Trying to install crontab with PHP cli, system (and passthru) function
returned error-code of "1" with output "no crontab for USER" (USER should
be replaced with real system user to whom crontab should be installed).

the code is:
$ php -r '$c="crontab -u USER -l";system($c,$status); printf("%s
(%d)\n",$c,$status);'

the output is:
no crontab for USER
crontab -u USER -l (1)

Since no crontab is been installed for the USER, the output was expected,
but I don't think error code should be 1 for this.

For comparison, python and c++ both returns 256 of error code for this
error ("no crontab for USER be installed").

According to an error code definition of unix system (in ubuntu,
/usr/include/asm-generic/errno-base.h and errno.h), 1 be translated as
"permission denied".

Followings are comparison code and result for other languages.
They returned error number 256 but PHP.

* c++
#include <iostream>
#include <cstdlib>
using namespace std;

int main(int argc,char *argv[]){
        string cmnd("crontab -u USER -l");
        int errcode=system(cmnd.data());
        printf(
                "%s (%d)\n",
                cmnd.data(),
                errcode
        );
        return 0;
}

r...@server2:~/diary# ./a.out
no crontab for USER
crontab -u USER -l (256)

* python
r...@server2:~/diary# python -c 'import os; c="crontab -u USER -l"; print
"%s (%d)" % (c, os.system(c))'
no crontab for USER
crontab -u USER -l (256)

* php
r...@server2:~/diary# php -r '$c="crontab -u USER -l";system($c,$status);
printf("%s (%d)\n",$c,$status);'
no crontab for USER
crontab -u USER -l (1)

* error number refference
r...@server2:~/diary# awk '/[\x20\t]+1[\x20\t]+/'
/usr/include/asm-generic/errno-base.h
#define EPERM            1      // Operation not permitted



Reproduce code:
---------------
# make sure there's NO crontab installed for USER.

$ php -r '$c="crontab -u USER -l";system($c,$status); printf("%s
(%d)\n",$c,$status);'


Expected result:
----------------
Output:
no crontab for USER
crontab -u USER -l (256)

Actual result:
--------------
Output:
no crontab for USER
crontab -u USER -l (1)

-- 
Edit bug report at http://bugs.php.net/?id=48576&edit=1
-- 
Try a CVS snapshot (PHP 5.2):        
http://bugs.php.net/fix.php?id=48576&r=trysnapshot52
Try a CVS snapshot (PHP 5.3):        
http://bugs.php.net/fix.php?id=48576&r=trysnapshot53
Try a CVS snapshot (PHP 6.0):        
http://bugs.php.net/fix.php?id=48576&r=trysnapshot60
Fixed in CVS:                        
http://bugs.php.net/fix.php?id=48576&r=fixedcvs
Fixed in CVS and need be documented: 
http://bugs.php.net/fix.php?id=48576&r=needdocs
Fixed in release:                    
http://bugs.php.net/fix.php?id=48576&r=alreadyfixed
Need backtrace:                      
http://bugs.php.net/fix.php?id=48576&r=needtrace
Need Reproduce Script:               
http://bugs.php.net/fix.php?id=48576&r=needscript
Try newer version:                   
http://bugs.php.net/fix.php?id=48576&r=oldversion
Not developer issue:                 
http://bugs.php.net/fix.php?id=48576&r=support
Expected behavior:                   
http://bugs.php.net/fix.php?id=48576&r=notwrong
Not enough info:                     
http://bugs.php.net/fix.php?id=48576&r=notenoughinfo
Submitted twice:                     
http://bugs.php.net/fix.php?id=48576&r=submittedtwice
register_globals:                    
http://bugs.php.net/fix.php?id=48576&r=globals
PHP 4 support discontinued:          http://bugs.php.net/fix.php?id=48576&r=php4
Daylight Savings:                    http://bugs.php.net/fix.php?id=48576&r=dst
IIS Stability:                       
http://bugs.php.net/fix.php?id=48576&r=isapi
Install GNU Sed:                     
http://bugs.php.net/fix.php?id=48576&r=gnused
Floating point limitations:          
http://bugs.php.net/fix.php?id=48576&r=float
No Zend Extensions:                  
http://bugs.php.net/fix.php?id=48576&r=nozend
MySQL Configuration Error:           
http://bugs.php.net/fix.php?id=48576&r=mysqlcfg

Reply via email to