diff -up iputils-s20071127/ping.c.ia64_align iputils-s20071127/ping.c
--- iputils-s20071127/ping.c.ia64_align	2008-06-02 08:56:32.000000000 +0200
+++ iputils-s20071127/ping.c	2008-06-02 08:56:32.000000000 +0200
@@ -200,13 +200,13 @@ main(int argc, char **argv)
 				ptr[3] = i4;
 				options |= F_STRICTSOURCE;
 			} else {
-				device = optarg;
+				device = strdup(optarg);
 			}
 #else
 			if (inet_pton(AF_INET, optarg, &source.sin_addr) > 0)
 				options |= F_STRICTSOURCE;
 			else
-				device = optarg;
+				device = strdup(optarg);
 #endif
 			break;
 		}
diff -up iputils-s20071127/arping.c.ia64_align iputils-s20071127/arping.c
--- iputils-s20071127/arping.c.ia64_align	2008-06-02 08:56:32.000000000 +0200
+++ iputils-s20071127/arping.c	2008-06-02 08:56:32.000000000 +0200
@@ -351,7 +351,7 @@ main(int argc, char **argv)
 			timeout = atoi(optarg);
 			break;
 		case 'I':
-			device = optarg;
+			device = strdup(optarg);
 			break;
 		case 'f':
 			quit_on_reply=1;
diff -up iputils-s20071127/ping6.c.ia64_align iputils-s20071127/ping6.c
--- iputils-s20071127/ping6.c.ia64_align	2008-06-02 08:56:32.000000000 +0200
+++ iputils-s20071127/ping6.c	2008-06-02 08:56:32.000000000 +0200
@@ -581,7 +581,7 @@ int main(int argc, char *argv[])
 
 				free(addr);
 			} else {
-				device = optarg;
+				device = strdup(optarg);
 			}
 			break;
 		case 'M':
