chiark
/
gitweb
/
~ianmdlvl
/
adns.git
/ blobdiff
commit
grep
author
committer
pickaxe
?
search:
re
summary
|
shortlog
|
log
|
commit
|
commitdiff
|
tree
raw
|
inline
| side by side
Sensible handling of empty reads.
[adns.git]
/
regress
/
hplayback.c.m4
diff --git
a/regress/hplayback.c.m4
b/regress/hplayback.c.m4
index 908886957f7fea3285b64811b1bd753bce12cc3d..d7b383a0c495b3fd39e5c480f114b03c25fc394b 100644
(file)
--- a/
regress/hplayback.c.m4
+++ b/
regress/hplayback.c.m4
@@
-44,6
+44,7
@@
static void Tensurereportfile(void) {
const char *fdstr;
int fd;
const char *fdstr;
int fd;
+ if (Treportfile) return;
Treportfile= stderr;
fdstr= getenv("ADNS_TEST_REPORT_FD"); if (!fdstr) return;
fd= atoi(fdstr);
Treportfile= stderr;
fdstr= getenv("ADNS_TEST_REPORT_FD"); if (!fdstr) return;
fd= atoi(fdstr);
@@
-271,7
+272,7
@@
void Q_vb(void) {
m4_define(`hm_syscall', `
hm_create_proto_h
int H$1(hm_args_massage($3,void)) {
m4_define(`hm_syscall', `
hm_create_proto_h
int H$1(hm_args_massage($3,void)) {
- int r;
+ int r
, amtread
;
m4_define(`hm_rv_fd',`char *ep;')
m4_define(`hm_rv_any',`char *ep;')
m4_define(`hm_rv_len',`')
m4_define(`hm_rv_fd',`char *ep;')
m4_define(`hm_rv_any',`char *ep;')
m4_define(`hm_rv_len',`')
@@
-295,10
+296,10
@@
int H$1(hm_args_massage($3,void)) {
Tensurereportfile();
fprintf(Treportfile,"syscallr %s",vb2.buf);
Tensurereportfile();
fprintf(Treportfile,"syscallr %s",vb2.buf);
-
vb2.avail
= strlen(vb2.buf);
- if (
vb.avail<=0 || vb2.buf[--vb2.avail
]!=hm_squote\nhm_squote)
+
amtread
= strlen(vb2.buf);
+ if (
amtread<=0 || vb2.buf[--amtread
]!=hm_squote\nhm_squote)
Psyntax("badly formed line");
Psyntax("badly formed line");
- vb2.buf[
vb2.avail
]= 0;
+ vb2.buf[
amtread
]= 0;
if (memcmp(vb2.buf," $1=",hm_r_offset)) Psyntax("syscall reply mismatch");
if (vb2.buf[hm_r_offset] == hm_squoteEhm_squote) {
if (memcmp(vb2.buf," $1=",hm_r_offset)) Psyntax("syscall reply mismatch");
if (vb2.buf[hm_r_offset] == hm_squoteEhm_squote) {
@@
-346,7
+347,8
@@
int H$1(hm_args_massage($3,void)) {
m4_define(`hm_arg_pollfds_io',`Parg("$'`1"); Ppollfds($'`1,$'`2);')
m4_define(`hm_arg_addr_out',`Parg("$'`1"); Paddr($'`1,$'`2);')
$3
m4_define(`hm_arg_pollfds_io',`Parg("$'`1"); Ppollfds($'`1,$'`2);')
m4_define(`hm_arg_addr_out',`Parg("$'`1"); Paddr($'`1,$'`2);')
$3
- if (vb2.used != vb2.avail) Psyntax("junk at end of line");
+ assert(vb2.used <= amtread);
+ if (vb2.used != amtread) Psyntax("junk at end of line");
hm_create_nothing
m4_define(`hm_arg_bytes_out',`r= Pbytes($'`2,$'`4);')
hm_create_nothing
m4_define(`hm_arg_bytes_out',`r= Pbytes($'`2,$'`4);')