[BusyBox 0001000]: this awk script don't work with busybox
bugs at busybox.net
bugs at busybox.net
Fri Aug 25 15:40:59 UTC 2006
A NOTE has been added to this issue.
======================================================================
http://busybox.net/bugs/view.php?id=1000
======================================================================
Reported By: VEvgeniy
Assigned To: BusyBox
======================================================================
Project: BusyBox
Issue ID: 1000
Category: Standards Compliance
Reproducibility: always
Severity: minor
Priority: normal
Status: assigned
======================================================================
Date Submitted: 08-17-2006 08:28 PDT
Last Modified: 08-25-2006 08:40 PDT
======================================================================
Summary: this awk script don't work with busybox
Description:
multipart.awk
------ start ------
BEGIN{
RS="\015\012"
getline
FS="\015\012"
RS=$0
dirfile="/tmp"
}
{
head=1
getfile=""
getname=""
typedata="f"
if($1=="--"){exit}
if($1==""){$0=substr($0,3)}
for(i=1;i<=NF;i++){
head=head+length($i)+length(FS)
if($i==""){
value=$0
value=substr(value,head,length(value)-head-1)
if(getfile!=""){
printf("%s",value) > dirfile"/"getfile
value=getfile
}
for(nl=1;nl<=length(value);nl=nl+2){
value=substr(value,1,nl-1)"\\"substr(value,nl)
}
while((nl=index(getname,"_"))>0){getname=substr(getname,1,nl-1)"
"substr(getname,nl+1)}
if(value==""){value="''"}
print getname" "value
next
}
if(i==1){
s=$1";"
while(length(s)>0){
n=index(s,";")
sl=substr(s,1,n-1)
while(substr(sl,1,1)==" "){sl=substr(sl,2)}
if(typedata=="f"){
if(sl=="Content-Disposition: form-data"){typedata="t"}
}
else{
if(substr(sl,1,5)=="name="){
getname=substr(sl,7,length(sl)-7)
}
if(substr(sl,1,9)=="filename="){
getfile=substr(sl,11,length(sl)-11)
while((nl=index(getfile,"/"))>0){getfile=substr(getfile,nl+1)}
while((nl=index(getfile,"\\"))>0){getfile=substr(getfile,nl+1)}
}
}
s=substr(s,n+1)
}
}
}
}
------ end ------
This awk script work with "multipart/form-data" enctype in cgi-script for
httpd
Only "multipart/form-data" enctype form download files to server.
If I use standart awk program, I have fine result with any files.
If I use busybox awk, I have bad result. My files cut.
problem strings:
...
value=$0
value=substr(value,head,length(value)-head-1)
if(getfile!=""){
printf("%s",value) > dirfile"/"getfile
value=getfile
}
...
more file - more probability problem
I have not fine result with 10MB file or more.
======================================================================
----------------------------------------------------------------------
bernhardf - 08-25-06 08:40
----------------------------------------------------------------------
I fear that i do not quite understand the problem you are describing.
Can you please attach a tarball with
1) the awk script
2) example input file
3) expected output file
4) a script that converts the input file to the outputfile?
regards,
Issue History
Date Modified Username Field Change
======================================================================
08-17-06 08:28 VEvgeniy New Issue
08-17-06 08:28 VEvgeniy Status new => assigned
08-17-06 08:28 VEvgeniy Assigned To => BusyBox
08-25-06 08:40 bernhardf Note Added: 0001588
======================================================================
More information about the busybox-cvs
mailing list