- strcpy(filename, control_block->apdufile);
- if (!control_block->dynamic)
- {
- if (!apduf)
- {
- if (!(apduf = fopen(filename, "w")))
- {
- yaz_log(YLOG_WARN|YLOG_ERRNO, "can't open apdu dump %s", filename);
- return 0;
- }
- setvbuf(apduf, 0, _IONBF, 0);
- }
- f = apduf;
- }
- else
- {
- sprintf(filename + strlen(filename), ".%ld", (long)getpid());
- if (!(f = fopen(filename, "w")))
- {
- yaz_log(YLOG_WARN|YLOG_ERRNO, "%s", filename);
- return 0;
- }
- setvbuf(f, 0, _IONBF, 0);
- }
+ char filename[256];
+ sprintf(filename, "%.200s.%ld", apdufile, (long)getpid());
+ if (!(f = fopen(filename, "w")))
+ {
+ yaz_log(YLOG_WARN|YLOG_ERRNO, "%s", filename);
+ return 0;
+ }
+ setvbuf(f, 0, _IONBF, 0);