[svn.haxx.se] · SVN Dev · SVN Users · SVN Org · TSVN Dev · TSVN Users · Subclipse Dev · Subclipse Users · this month's index

Re: The --password and clumsy users issue

From: Branko Čibej <brane_at_wandisco.com>
Date: Fri, 04 Jul 2014 09:58:46 +0200

On 04.07.2014 04:34, Ben Reser wrote:
> On 7/3/14 4:50 PM, Gabriela Gibson wrote:> it compiles and runs and in gdb the
> vars do change, but the compiler isn't happy:
>> subversion/svn/svn.c: In function 'main':
>> subversion/svn/svn.c:3048:23: warning: assignment discards 'const' qualifier
>> from pointer target type [enable\
>> d by default]
>> argv[i-1] = "#####\0";
>> ^
>> subversion/svn/svn.c:3052:23: warning: assignment discards 'const' qualifier
>> from pointer target type [enable\
>> d by default]
>> argv[i-1] = "#####\0";
> The main function has the const qualifier on argv. You either need to remove
> that or cast it away.

Um. Let's try explaining that again. The standard signature for main() is:

    int main(int argc, char* argv[]);

where nothing is constant. However, very often, programs use this
essentially equivalent form:

    int main(int argc, const char* argv[]);

This is the signature we use. However: in this case, argv is *not*
const, it only points to const strings.

What's happening in your case, Gabriela, is that youre using the "char*
argv[]" signature without the "const"; and assigning constant string
pointers to it. A C string literal (in C99; not in C90) has the type
"const char*", hence the warning, since you're assigning it to a "char*".

However: what you're doing here is changing the pointers in the argv
array. Your're *not* changing the (presumably original) argument string
that those pointers refer to. So it's not surprising that the kernel,
and hence ps, doesn't notice the change.

-- Brane

Branko Čibej | Director of Subversion
WANdisco // Non-Stop Data
e. brane_at_wandisco.com
Received on 2014-07-04 09:59:29 CEST

This is an archived mail posted to the Subversion Dev mailing list.

This site is subject to the Apache Privacy Policy and the Apache Public Forum Archive Policy.