Re: A problematic combination of malloc and getCharacters.
Re: A problematic combination of malloc and getCharacters.
- Subject: Re: A problematic combination of malloc and getCharacters.
- From: Aki Inoue <email@hidden>
- Date: Wed, 24 Oct 2007 16:15:33 -0700
I believe AuthorizationExecuteWithPrivileges() is expecting NULL-
terminated, UTF-8, C-string as the args instead of non-terminated
unichar array.
You can use -UTF8String methods for that.
Since the second arg to the function is defined to be a POSIX path
representation, you should use -fileSystemRepresentation instead.
Aki
On 2007/10/24, at 15:58, deepak gopal wrote:
Hi
The method performChange would run a script which would modify a
plist.
When the control reaches line 12 I get this message "/: /: is a
directory" in the run log and when I check in the debugger I find
that plistScript and garage have "/" as the value. So I know where
the problem is but dont' know what's causing it or what the solution
is.
There is no problem with the authorization or with the paths
copyPlistScript_ (/tmp/script) or garage_ (/tmp/garage)
I assume that the memory allocation in line 4 and line 6 would give
the same result.
Can someone guide me?
1 - (BOOL)performChange {
2 char **plistArgs = (char **) malloc(3 *sizeof(char*));
3 NSString *shell = @"/bin/sh";
4 char *plistScript = (char *) malloc([copyPlistScript_
length]*sizeof(unichar));
5 [copyPlistScript_ getCharacters:(unichar *) plistScript];
6 char *garage = (char *) malloc([garage_
lengthOfBytesUsingEncoding:NSUnicodeStringEncoding]);
7 [garage_ getCharacters:(unichar *) garage];
8 plistArgs[0] = plistScript;
9 plistArgs[1] = garage;
10 plistArgs[2] = NULL;
12 OSStatus status = AuthorizationExecuteWithPrivileges(authRef_,
[shell UTF8String], 0, plistArgs, NULL);
13 if ((status == errAuthorizationCanceled) || (status !=
errAuthorizationSuccess)) {
14 NSLog(@"Desktop Break Change: Authorization failed when
installing new configuration plists.");
15 return NO;
16 }
17 free(plistScript);
18 free(garage);
19 free(plistArgs);
20}
Why delete messages? Unlimited storage is just a click away. Go
to http://help.yahoo.com/l/in/yahoo/mail/yahoomail/tools/tools-08.html
_______________________________________________
Cocoa-dev mailing list (email@hidden)
Please do not post admin requests or moderator comments to the list.
Contact the moderators at cocoa-dev-admins(at)lists.apple.com
Help/Unsubscribe/Update your Subscription:
This email sent to email@hidden
_______________________________________________
Cocoa-dev mailing list (email@hidden)
Please do not post admin requests or moderator comments to the list.
Contact the moderators at cocoa-dev-admins(at)lists.apple.com
Help/Unsubscribe/Update your Subscription:
This email sent to email@hidden