[Date Prev][Date Next] [Thread Prev][Thread Next] [Date Index] [Thread Index]

Bug#488665: linux-image-2.6.25-2-686: cannot pass multiple arguments in #! line



Package: linux-image-2.6.25-2-686
Version: 2.6.25-3
Severity: normal


When running script which has multiple arguments in the #! line the
arguments are joined into one. This breaks scripts that require multiple
arguments passed to the interpreter.

Attaching test interpreter (test.c, to be compiled with "gcc test.c -o
test.o"), and test script to be runned by the test interpreter (test.sh)

Observed output of the script:
./test|-a -b -c|./test.sh

Expected outout of the script:
./test|-a|-b|-c|./test.sh

The interpreter test prints all its arguments interleaved with |.

This also disallows passing any arguments to scripts invoked with env.

Thanks


-- Package-specific info:
** Version:
Linux version 2.6.25-2-686 (Debian 2.6.25-3) (maks@debian.org) (gcc version 4.1.3 20080420 (prerelease) (Debian 4.1.2-22)) #1 SMP Wed May 14 16:42:03 UTC 2008

** Command line:

** Not tainted

** Kernel log:

** Loaded modules:
Module                  Size  Used by
sbs                     8544  0 
video                  19728  0 
output                  3712  1 video
sbshc                   6784  1 sbs
battery                 8448  0 
wmi                     7880  0 
ipv6                  241956  28 
loop                   16708  0 
psmouse                35920  0 
shpchp                 29716  0 
parport_pc             25860  0 
serio_raw               6532  0 
container               4736  0 
i2c_piix4               8268  0 
button                  8240  0 
parport                33868  1 parport_pc
i2c_core               22548  1 i2c_piix4
ac                      4448  0 
pci_hotplug            26980  1 shpchp
intel_agp              25084  1 
agpgart                31720  1 intel_agp
evdev                  11328  0 
rtc                    14272  0 
pcspkr                  3136  0 
ext3                  120264  4 
jbd                    43444  1 ext3
mbcache                 8260  1 ext3
sd_mod                 26072  6 
ide_cd_mod             32864  0 
cdrom                  31872  1 ide_cd_mod
floppy                 53284  0 
pcnet32                31332  0 
mii                     5248  1 pcnet32
mptspi                 17544  5 
mptscsih               25056  1 mptspi
mptbase                55044  2 mptspi,mptscsih
piix                    7176  0 [permanent]
ide_pci_generic         4228  0 [permanent]
ide_core              100312  3 ide_cd_mod,piix,ide_pci_generic
ata_generic             8004  0 
scsi_transport_spi     22368  1 mptspi
libata                142032  1 ata_generic
scsi_mod              138508  5 sd_mod,mptspi,mptscsih,scsi_transport_spi,libata
dock                   10448  1 libata
thermal                19100  0 
processor              39660  1 thermal
fan                     5636  0 

** PCI devices:



-- System Information:
Debian Release: lenny/sid
  APT prefers testing
  APT policy: (990, 'testing'), (500, 'unstable'), (1, 'experimental')
Architecture: i386 (i686)

Kernel: Linux 2.6.25-2-686 (SMP w/1 CPU core)
Locale: LANG=en_US.UTF-8, LC_CTYPE=en_US.UTF-8 (charmap=UTF-8)
Shell: /bin/sh linked to /bin/bash

Versions of packages linux-image-2.6.25-2-686 depends on:
ii  debconf [debconf-2.0]         1.5.22     Debian configuration management sy
ii  initramfs-tools [linux-initra 0.92b      tools for generating an initramfs
ii  module-init-tools             3.4-1      tools for managing Linux kernel mo

Versions of packages linux-image-2.6.25-2-686 recommends:
ii  libc6-i686                    2.7-10     GNU C Library: Shared libraries [i

-- debconf information excluded
#!./test -a -b -c
#include <stdio.h>

int main(int argc, char** argv){
    int i;
    fprintf(stderr,  argv[0]);
    for(i=1;argc>i;i++){
	fprintf(stderr, "|%s", argv[i]);
    }
    fprintf(stderr, "\n");
}

Reply to: