Magnus Hagander <magnus@hagander.net> writes:
> Tom Lane wrote:
>> Magnus Hagander <magnus@hagander.net> writes:
>>> If we just didn't add the serial number at the end, then it would be
>>> impossible to create a shared memory segment for the same port again.
>>> That protects the port and not the datadir. But what if we change the
>>> name of the shared memory segment to be that of the data directory
>>> instead of the port?
>>
>> That would help if there's only one possible spelling of the data
>> directory path ... otherwise not so much ...
> Well, we could run GetFullPathName() on it
> (http://msdn2.microsoft.com/en-us/library/aa364963.aspx). I think that
> should work - takes out the "relative vs absolute path" part at least.
> It won't take care of somebody having a junction pointing at the data
> directory and starting it against that one, but that's really someone
> *trying* to break the system. You wouldn't do that by mistake...
> Seems worthwhile to you? If so I can take a look at doing it when I get
> some spare time.
Sounds reasonable --- certainly it'd be better than the current
situation. I assume that we can have long enough shared memory segment
names that the data directory path length isn't unduly constrained?
regards, tom lane