File tree Expand file tree Collapse file tree 3 files changed +16
-11
lines changed Expand file tree Collapse file tree 3 files changed +16
-11
lines changed Original file line number Diff line number Diff line change 1
1
#include < Foundation/Foundation.h>
2
2
#include < dlfcn.h>
3
3
#include < libgen.h>
4
+ #include < limits.h>
4
5
5
6
@protocol FooProtocol
6
- + (void )f ;
7
+ - (void )f ;
7
8
@end
8
9
9
10
int main (int argc, const char **argv) {
10
- char dylib[4096 ];
11
- strlcpy (dylib, dirname (argv[0 ]), 4096 );
12
- strlcat (dylib, " /libNewerTarget.dylib" , 4096 );
11
+ char dylib[PATH_MAX ];
12
+ strlcpy (dylib, dirname (argv[0 ]), PATH_MAX );
13
+ strlcat (dylib, " /libNewerTarget.dylib" , PATH_MAX );
13
14
dlopen (dylib, RTLD_LAZY);
14
15
Class <FooProtocol> fooClass = NSClassFromString (@" NewerTarget.Foo" );
15
16
[[[fooClass alloc ] init ] f ];
16
17
return 0 ;
17
18
}
18
-
Original file line number Diff line number Diff line change 1
1
#include <dlfcn.h>
2
+ #include <libgen.h>
3
+ #include <limits.h>
2
4
#include <stdio.h>
3
5
#include <string.h>
4
- #include <libgen.h>
5
6
6
7
int main (int argc , const char * * argv ) {
7
- char * dylib_name = strcat (dirname (argv [0 ]),"/dylib.dylib" );
8
+ char dylib_name [PATH_MAX ];
9
+ strlcpy (dylib_name , dirname (argv [0 ]), PATH_MAX );
10
+ strlcat (dylib_name , "/dylib.dylib" , PATH_MAX );
8
11
void * dylib = dlopen (dylib_name , RTLD_NOW );
9
12
void (* f )() = dlsym (dylib , "f" );
10
13
f ();
Original file line number Diff line number Diff line change 11
11
//===----------------------------------------------------------------------===//
12
12
13
13
#include <dlfcn.h>
14
+ #include <libgen.h>
15
+ #include <limits.h>
14
16
#include <stdio.h>
15
17
#include <string.h>
16
- #include <libgen.h>
17
18
18
- int main (int argc , const char * * argv )
19
- {
20
- char * dylib = strcat (dirname (argv [0 ]),"/UnitTest.xctest/Contents/MacOS/test" );
19
+ int main (int argc , const char * * argv ) {
20
+ char dylib [PATH_MAX ];
21
+ strlcpy (dylib , dirname (argv [0 ]), PATH_MAX );
22
+ strlcat (dylib , "/UnitTest.xctest/Contents/MacOS/test" , PATH_MAX );
21
23
void * test_case = dlopen (dylib , RTLD_NOW );
22
24
23
25
printf ("%p\n" , test_case ); // Set breakpoint here
You can’t perform that action at this time.
0 commit comments