blame the caller for the memory allocated by
strdup.
-- 
/sys/src/libc/port/strdup.c
strdup.c.orig:9,14 - /n/sources/patch/applied/strduptag/strdup.c:9,14
  	ns = malloc(strlen(s) + 1);
  	if(ns == 0)
  		return 0;
- 
+ 	setmalloctag(ns, getcallerpc(&s));
  	return strcpy(ns, s);
  }