From 4f62bc36e50bc4a35469af8bee7f71ee3c4f3fe2 Mon Sep 17 00:00:00 2001 From: Dmitry Vyukov Date: Wed, 18 Jan 2017 11:57:23 +0100 Subject: sys: improve sockaddr_un description 1. Embed real filename. 2. Use proc type for unique identifiers. --- prog/rand.go | 13 +++++++++++-- sys/socket.txt | 11 +++-------- 2 files changed, 14 insertions(+), 10 deletions(-) diff --git a/prog/rand.go b/prog/rand.go index 7289e2969..77add6615 100644 --- a/prog/rand.go +++ b/prog/rand.go @@ -661,8 +661,17 @@ func (r *randGen) generateArg(s *state, typ sys.Type) (arg *Arg, calls []*Call) data := r.randString(s, a.Values, a.Dir()) return dataArg(a, data), nil case sys.BufferFilename: - filename := r.filename(s) - return dataArg(a, []byte(filename)), nil + var data []byte + if a.Dir() == sys.DirOut { + r.choose( + 10, func() { data = make([]byte, r.Intn(100)) }, + 10, func() { data = make([]byte, r.Intn(108)) }, // UNIX_PATH_MAX + 10, func() { data = make([]byte, r.Intn(4096)) }, // PATH_MAX + ) + } else { + data = []byte(r.filename(s)) + } + return dataArg(a, data), nil case sys.BufferText: return dataArg(a, r.generateText(a.Text)), nil default: diff --git a/sys/socket.txt b/sys/socket.txt index 7c17497f4..4ac9e4b27 100644 --- a/sys/socket.txt +++ b/sys/socket.txt @@ -225,18 +225,13 @@ sockaddr_un [ sockaddr_un_file { family flags[unix_socket_family, int16] -# TODO: this must be an embeded file name (currently filename implies indirection). - path array[int8] -} + path filename +} [packed] sockaddr_un_abstract { family flags[unix_socket_family, int16] ind const[0, int8] -# To ensure isolation. -# This does not work: prog tries to use output sockaddr_un to create pid's. -# But since it is in a union, the call does not always creates the resource. -# pid pid - id int32 + id proc[int32, 20000, 4] } msghdr_un { -- cgit mrf-deployment