BUG/MEDIUM: sample: Don't treat SMP_T_METH as SMP_T_STR.

In smp_dup(), don't consider a SMP_T_METH with an unknown method the same as
SMP_T_STR. The string and string length aren't stored at the same place.

This should be backported to 1.8.
diff --git a/src/sample.c b/src/sample.c
index 134ff76..8821750 100644
--- a/src/sample.c
+++ b/src/sample.c
@@ -666,11 +666,14 @@
 
 	case SMP_T_STR:
 		trash = get_trash_chunk();
-		trash->data = smp->data.u.str.data;
+		trash->data = smp->data.type == SMP_T_STR ?
+		    smp->data.u.str.data : smp->data.u.meth.str.data;
 		if (trash->data > trash->size - 1)
 			trash->data = trash->size - 1;
 
-		memcpy(trash->area, smp->data.u.str.area, trash->data);
+		memcpy(trash->area, smp->data.type == SMP_T_STR ?
+		    smp->data.u.str.area : smp->data.u.meth.str.area,
+		    trash->data);
 		trash->area[trash->data] = 0;
 		smp->data.u.str = *trash;
 		break;