Граф коммитов

7403 Коммитов

Автор SHA1 Сообщение Дата
Manuel de la Pena 3f0985ecac
[Runtime] Move some of the changes back to int. (#7529)
Some of the fixes done for the warnings have breaking changes. Move back
to int and ensure that we do not have any compilation errors (we are
using -Werror).

Fixes: https://github.com/xamarin/xamarin-macios/issues/7509
2019-12-11 22:17:29 -05:00
Marius Ungureanu 3c4cdef538 Set LangVersion in order to be able to build from an IDE (#7552) 2019-12-11 17:10:16 -05:00
Marius Ungureanu da8ef25e0c ArgumentNullException allows passing null as message parameter (#7556) 2019-12-11 17:09:13 -05:00
Marius Ungureanu 035dcd0012 Move pinning outside the loop (#7557) 2019-12-11 17:08:56 -05:00
Rolf Bjarne Kvinge 3f069f4378
[runtime] Don't zero-terminate after the string buffer. Fixes #7564. (#7571)
Fixes https://github.com/xamarin/xamarin-macios/issues/7564.
2019-12-11 19:31:15 +01:00
Oleg Demchenko 7cfbe40bcb
Merge pull request #7533 from xamarin/olegoid/vsts-1029041
[vsts-1029041] Add FileType to the list of parameters for altool
2019-12-10 11:56:44 -05:00
Sebastien Pouliot ff2d5bb94f
[mtouch][mmp] Include satellite assemblies from nuget dependencies. Fix #7113 (#7548)
It's possible for a nuget to have dependencies that will bring satellite
assemblies into a project.

When doing so the satellite assemblies are copied to the right output
(e.g. `Debug`) directory, so they work fine at runtime. However it's
not 100% fine at build time, e.g. msbuild won't detected them as
satellite assemblies.

Something similar happens with `mtouch` (and `mmp`) since the satellite
assemblies won't be found inside a (culture-named) subdirectory from the
original assembly location. In our case this means the assemblies won't
be copied into the .app bundle (since we don't run from `Debug`) and
localization won't work properly.

The solution is to check for both the (culture-named) subdirectories
from the assembly location (like before) and, if nothing is found, also
try to locate them in the _build_ (like `Debug`) directory - so if
something else (nuget or custom build scripts) tried to outsmart the
build logic then we'll still bring those satellite assemblies in the
app bundle we produce.

https://github.com/xamarin/xamarin-macios/issues/7113
2019-12-10 09:23:31 -05:00
Rolf Bjarne Kvinge 9fe358650b
Use relative paths in scripts. (#7545)
It makes relocating XI/XM easier.
2019-12-10 12:47:30 +01:00
Sebastien Pouliot b3bc04c919
[mtouch] Fix caching issues. Fix #7514 (#7544)
The nice, repeatable test case from #7514 pointed out two issues

1. `cache.cs` ignored some changes

It looks like something changed (at some point) and the first _ignored_
line was the `@x.rsp` our response file - which should not be ignored.

This solved the build issue where updating the nuget should have
triggered a rebuild because
> /Users/poupou/.nuget/packages/skiasharp/1.68.0/lib/Xamarin.iOS/SkiaSharp.dll
and
> /Users/poupou/.nuget/packages/skiasharp/1.68.1/lib/Xamarin.iOS/SkiaSharp.dll
are different assemblies (but the same response file).

2. `copyfile` could fail silently

Copying the framework could fail (error 260) and the failure was never
reported so the build succeeded - but without updating (completely) the
framework.

The exact reason it fails is unknown :( but we can recover from it by
deleting the target and copying (everything) back to the expected
(target) location.

Build logs will now indicate when this fails and will try to recover
before reporting a build error. Best case it works :) worse case we'll
be aware something is wrong (which is better than ignoring)

ref: https://github.com/xamarin/xamarin-macios/issues/7514

* Do not call `Marshal.GetLastWin32Error` instead the callback
as the `SetLastError` logic has yet to be executed so we get a bogus
`260` value...

Instead we call it after the `copyfile` call returns but, at this stage,
the callback (i.e. **us**) signaled an error so what we get back (`17`)
is not very helpful - as we aborted (Quit) the logic when copying a file
that existed.

```c
#define EEXIST          17      /* File exists */
```

from Console logs

```
default	14:23:54.771292-0500	mono64	Cannot make directory /Users/poupou/Projects/gh7514/gh7514/bin/iPhoneSimulator/Debug/gh7514.app/Frameworks/libSkiaSharp.framework: File exists
default	14:23:54.771620-0500	mono64	Cannot make directory /Users/poupou/Projects/gh7514/gh7514/bin/iPhoneSimulator/Debug/gh7514.app/Frameworks/libSkiaSharp.framework/_CodeSignature: File exists
default	14:23:54.771850-0500	mono64	open on /Users/poupou/Projects/gh7514/gh7514/bin/iPhoneSimulator/Debug/gh7514.app/Frameworks/libSkiaSharp.framework/_CodeSignature/CodeResources: File exists
```

`copyfile.c` source code (might not be the latest) can be seen from
https://opensource.apple.com/source/copyfile/copyfile-42/copyfile.c

```c
if (mkdir(s->dst, mode) == -1) {
	if (errno != EEXIST || (s->flags & COPYFILE_EXCL)) {
		copyfile_warn("Cannot make directory %s", s->dst);
```

so `mkdir` fails - but not because of `EEXIST` and from `copyfile.h`
we see that `EXCL` exists but it's not using (or even defined) in our
bindings.

```c
#define COPYFILE_EXCL		(1<<17) /* fail if destination exists */
```

So sadly the `Err` condition (inside the callback) does not give us more
detail about the error itself.
2019-12-05 09:15:11 -05:00
Rolf Bjarne Kvinge e19fd5ba00
[monotouch-test] Improve MessageHandlerTest.TestNSUrlSessionHandlerCookies. (#7542)
1. Instead of fetching the managed response's cookies twice, and then
   comparing them to themselves, fetch the managed response's cookies once and
   then the native response's cookies once, and compare that. This way the
   test does what it's actually supposed to do!
2. Don't pass if we fail to get the managed response's cookies.
3. Improve assertions to verify the actual cookie content as well.
4. Improve diagnostics if an exception was thrown by checking for the
   exception first instead of failing due to something else being different
   (since the underlying cause of the difference is the exception, that's what
   will have the most information about the failure).
5. Use httpbin.org instead of microsoft.com, since microsoft.com does UA
   sniffing and returns different results between the http handlers :/
2019-12-04 23:26:31 +01:00
Jo Shields 5d4ada34c7 Bump to mono:2019-10 (#7192)
## Miscellaneous fixes

* Fixed
`/Users/builder/jenkins/workspace/xamarin-macios/xamarin-macios/builds/mono-ios-sdk-destdir/ios-sources/external/linker/src/linker/Linker.Steps/OutputStep.cs(110,15): error CS0246: The type or namespace name ‘OutputException’ could not be found (are you missing a using directive or an assembly reference?) [/Users/builder/jenkins/workspace/xamarin-macios/xamarin-macios/tools/mmp/mmp.csproj]`
* Changed the name of the method that is used from linker. Because of this commit 6be26771b9
* Added `OutputException.cs` file on `mtouch.csproj`.
* Removing enter_gc_safe and exit_gc_safe because now it's already gc_safe in this part of code, after a mono change.
* Added known exceptions to LLVM exception list.
* Needs `ifdef` because of this https://github.com/mono/mono/pull/17260.
* Bump MIN_MONO_VERSION to 6.8.0.41 and point MIN_MONO_URL to the PR.
* Add ENABLE_IOS=1 and ENABLE_MAC=1.
* Added switch to disable packaged mono build
* [Tests] Ignore tests that fail on 32b.
    Ignore the test on 32b, and filled issue: https://github.com/mono/mono/issues/17752
* [Tests] Ignore a couple of tests causing OOM.
    Hopefully fixes https://github.com/xamarin/maccore/issues/1659 for good.
* Ignore `MM0135` test on Catalina+ because it needs Xcode 9.4.
* [monotouch-test] Add null checks for teardown when test didn't run because of a too early OS version.
* [CFNetwork]: Http 2.0 requires OS X 10.11 or later.
    Check whether `_HTTPVersion2_0` is available and fallback to HTTP 1.1 otherwise.

## Bring HttpClient from CoreFX

* #7346 
* This bumps Mono to use https://github.com/mono/mono/pull/17645 (which is the 2019-10 backport
of https://github.com/mono/mono/pull/17628).
* The big user-visible change is in regards to certificate validation, everything below are just
some minor adjustments to tests.

### SocketsHttpHandler

CoreFX uses a completely new `HttpClientHandler` implementation called `SocketsHttpHandler`,
which you can find at https://github.com/dotnet/corefx/tree/release/3.0/src/System.Net.Http/src/System/Net/Http/SocketsHttpHandler.

Since this is not based on the web stack anymore, it does not use any of the related APIs such
as `ServicePointManager` or `WebException`.

### Certificate Validation Changes

There is a new API called `HttpClientHandler.ServerCertificateCustomValidationCallback`.
- https://docs.microsoft.com/en-us/dotnet/api/system.net.http.httpclienthandler.servercertificatecustomvalidationcallback?view=netframework-4.8
- c1778515a3/src/System.Net.Http/src/System/Net/Http/HttpClientHandler.Unix.cs (L154)
- c1778515a3/src/System.Net.Http/src/System/Net/Http/HttpClientHandler.Windows.cs (L383)

The `ServicePointManager.ServerCertificateValidationCallback` is no longer invoked and on
certificate validation failure, `AuthenticationException` (from `System.Security.Authentication`)
is thrown instead of `WebException`.

At the moment, the `NSUrlSessionHandler` still uses it's own validation callback and also still
throws `WebException` on failure; we should probably look into making this consistent with the
other handlers.

### Minor adjustments related to internal Mono APIs

* `HttpContent.SerializeToStreamAsync()` is now `protected` (changed from `protected internal`).
  - src/Foundation/NSUrlSessionHandler.cs: changed overload accordingly.
  - src/System.Net.Http/CFContentStream.cs: likewise.

* `HttpHeaders.GetKnownHeaderKind()` is an internal Mono API.
   There is a new internal API called `System.Net.Http.PlatformHelper.IsContentHeader(key)`
   which exists in both the old as well as the new implementation.
   The correct way of doing it with the CoreFX handler is
   `HeaderDescriptor.TryGet (key, out var descriptor) && descriptor.HeaderType == HttpHeaderType.Content`

### Minor adjustments to tests.

* `HttpClientHandler.MaxRequestContentBufferSize` is now longer supported, you can set it to
  any non-negative value, the getter will always return 0.
  See c1778515a3/src/System.Net.Http/src/System/Net/Http/HttpClientHandler.Core.cs (L18).
  - tests/linker/ios/link sdk/HttpClientHandlerTest.cs: removed assertion from test.

* `HttpMessageInvoker.handler` is a `protected private` field - in the CoreFX handler, it is
  called `_handler` and `private`.  This is accessed via reflection by some of the tests, which are
  now using the new name.
  - tests/mmptest/src/MMPTest.cs: here
  - tests/mtouch/MTouch.cs: here

* tests/monotouch-test/System.Net.Http/MessageHandlers.cs:
  Adjust `RejectSslCertificatesServicePointManager` to reflect the certificate validation
  changes described above.
  - FIXME: There was an `Assert.Ignore()` related to `NSUrlSessionHandler` and macOS 10.10;
    I removed that to reenable the test because the description linked to an old issue in
    the private repo that was referenced by several "Merged" PR's, so it looked to me that
    this might have already been fixed - and I also didn't see why it would fail there.
2019-12-04 15:10:32 -05:00
Vincent Dondain 612a5aa158
[xharness] Fix 32 bit device tests selection (#7540)
**Problem**

32 bit tests could only be executed with 64 bit tests. E.g: `run-ios-32-tests` didn't work on its own, only `run-ios-tests,run-ios-32-tests` worked

**Solution**

- Change the logic so that 32 bit tests are only looking for `IncludeiOS32` and 64 bit tests only `IncludeiOS64`
- To keep `run-ios-tests` and `skip-ios-tests` working, hack `SetEnabled` so `IncludeiOS` also sets `IncludeiOS32` and `IncludeiOS64`.
  Otherwise the way the code is currently organised we'd have to use `skip-ios-32-tests` and `skip-ios-64-tests`.
2019-12-04 11:35:09 -05:00
Oleg Demchenko 6aabc75583 [vsts-1029041] Pass TargetFrameworkIdentifier to identify target platform 2019-12-03 18:15:09 -05:00
Manuel de la Pena f69d44b852
[Foundation] Ensure that we do not iterate over a collection accessed by other threads. (#7532)
Make sure we do no iterate ove the dictionary while other threads are
accessing it. Lock, get the sources, then cancel.

Fixes: https://github.com/xamarin/xamarin-macios/issues/7386
2019-12-03 10:59:18 -05:00
Rolf Bjarne Kvinge 4586171c4c
[xibuild] Clean up temporary files when done. (#7508) 2019-12-03 14:42:56 +01:00
Rolf Bjarne Kvinge cdfc36e839
Bump mono to get fix for mono/mono#17931. (#7525)
New commits in mono/mono:

* mono/mono@56325f4097 [arm] if mtriple is provided, do not set -march
* mono/mono@c4a1b40fbd [2019-08] [runtime] Treat calling a non-virtual method through… (#17961)
* mono/mono@0c9250280d [2019-08] bump msbuild+roslyn to track mono-2019-08 (#17954)
* mono/mono@14aac0c541 Bump msbuild to track mono-2019-08 (#17854)
* mono/mono@a77128ca79 [merp] Remove extraneous waitpid invocation (#17762)
* mono/mono@296a9afdb2 [MacSDK] Bump xamarin-gtk-theme.py to latest revision from private bockbuild (#17786)
* mono/mono@e59c3fbb68 Bump msbuild packages to 1e1d0f2caad3731357cca18b298536e514f5519b (#17724)

Diff: 062f0ab8ca..56325f4097
2019-12-03 13:59:58 +01:00
Oleg Demchenko 0fe60500f0 [vsts-1029041] Add FileType to the list of parameters for altool
* ValidateAppStoreBundle
* UploadAppStoreBundle
2019-12-02 16:46:08 -05:00
Sebastien Pouliot 0ee2b271b1
[msbuild] Ensure files we copy are world-readable. Fix #7395 (#7515)
Only execute the extra logic when not running on Windows

ref: https://github.com/xamarin/xamarin-macios/issues/7395
2019-12-02 14:16:49 -05:00
Rolf Bjarne Kvinge bc6735374b
[monotouch-test] Make NetworkReachabilityTest.CtorIPAddressPair a bit more permissive. Fixes xamarin/maccore#2047. (#7516)
Try to fix https://github.com/xamarin/maccore/issues/2047 by making the test
accept NetworkReachabilityFlags.Reachable for the loopback address on device.

Fixes https://github.com/xamarin/maccore/issues/2047.
2019-12-02 07:58:57 +01:00
Sebastien Pouliot 845e7574ae
[linker] Fix "Linked Away" exceptions with Thread.CurrentPrincipal. Fix #7321 (#7510)
Keep 'CallContextSecurityData' around since it's quite small (and the
normal linker logic will be able to deal with it if unused) and allows
the use of `Thread.CurrentPrincipal`

Also add unit test.

Fix https://github.com/xamarin/xamarin-macios/issues/7321
2019-11-28 14:17:00 -05:00
Rolf Bjarne Kvinge 09c899cdf8
Bump macios-binaries to get fix for xamarin/maccore#2068. (#7502)
New commits in xamarin/macios-binaries:

* xamarin/macios-binaries@eb6980e Bump mlaunch to xamarin/maccore@92433b7757 (#28)

Diff: 6f488dd132..eb6980e8b6
2019-11-28 10:57:04 -05:00
Sebastien Pouliot 4ffbef7cac
[avfoundation] Use a smart enum for AVMetadataObjectType (#7497)
and drop the manual, error prone, conversion code.

The fact that this is also used as a `[Flag]` enum does not mean smart
enum could not be used [1]. The flag code only needed to be updated to
use the smart enum generated code.

[1] https://github.com/xamarin/xamarin-macios/issues/7317

Added unit tests.
2019-11-28 10:40:12 -05:00
Sebastien Pouliot d8468c621e
[generator] Avoid some unrequired loops over single usage attributes on members (#7494) 2019-11-27 19:01:12 +01:00
Rolf Bjarne Kvinge 0f8bb77320
[xharness] Make sure to always stop log and system capture. (#7499)
This will hopefully stop the runaway mlaunch processes we've seen on the bots.

Ref: https://github.com/xamarin/maccore/issues/1965.
2019-11-27 11:44:26 -05:00
Pramit Mallick faf1275c74
[Foundation] Add bindings for NSBackgroundActivityScheduler (#7496)
* Added NSBackgroundActivityScheduler binding

* DisableDefaultCtor + xtro
2019-11-27 09:55:54 -05:00
Rolf Bjarne Kvinge e86a76e6c7
[xharness] Add a timeout to the periodic command. (#7500)
This will hopefully prevent the periodic command from keeping xharness alive longer than it should.
2019-11-27 09:09:44 -05:00
Marius Ungureanu 38a3c4ed87 [CFNetwork] Fix ownership rules of CFHTTPAuthentication (#6088)
`Create` methods give ownership of the object, so in this case, owns=true. Prevents leak of CFHTTPAuthentication

Co-Authored-By: Rolf Bjarne Kvinge <rolf@xamarin.com>
Co-Authored-By: Manuel de la Pena <mandel@microsoft.com>
2019-11-26 16:28:41 -05:00
Sebastien Pouliot 611d6f37fb
[runtime] Comment two special cases that triggers static analysis tools (#7491) 2019-11-26 08:30:05 -05:00
Pramit Mallick 532059daf6
Added mappings to AVMetadataObject.EnumToObject (#7492) 2019-11-25 16:46:04 -05:00
Manuel de la Pena cb815ecd39
[Runtime] Update cflags and fix warnings accordingly. (#7478)
Update flags:

* Add -Werror so that warnings are errors.
* Move to -Wconversion that adds:
  * -Wbitfield-enum-conversion
  * -Wbool-conversion
  * -Wconstant-conversion
  * -Wenum-conversion
  * -Wfloat-conversion
  * -Wimplicit-float-conversion
  * -Wimplicit-int-conversion
  * -Wint-conversion
  * -Wliteral-conversion
  * -Wnon-literal-null-conversion
  * -Wnull-conversion
  * -Wobjc-literal-conversion
  * -Wshorten-64-to-32
  * -Wsign-conversion
  * -Wstring-conversion
Last work related to: https://github.com/xamarin/xamarin-macios/pull/7405
2019-11-25 16:00:24 -05:00
Manuel de la Pena 245fdf96aa
[Tests] Reuse NetworkResources in the linker tests. (#7451)
The linking tests do use a number of endpoints.
As with PR https://github.com/xamarin/xamarin-macios/pull/7418 we want
to have all the endpoints in a single place to update them if the server
side does give us problems.
2019-11-25 04:54:56 -05:00
Rolf Bjarne Kvinge 884c13775a [docs] Add links to explain what native code sharing is. (#3009) 2019-11-22 15:06:06 -05:00
Sebastien Pouliot 58d325746a
[linker] Do not mark NSObject subclasses from Xamarin.Forms.Platform.iOS.dll assembly (#7473)
Turn older #7165 prototype into an experimental feature. It can be
enabled by adding `--optimize=experimental-xforms-product-type` to the
**Additional mtouch arguments** of the project.

ref: https://github.com/xamarin/xamarin-macios/pull/7165
2019-11-22 15:38:46 +01:00
Manuel de la Pena 2de737ef98
[Tests] Update tests.sln to include all the BCL tests. (#7479)
Update the UUIDs of the projects to ensure that they are all present
in the sln for developers to use.

Fixes: https://github.com/xamarin/xamarin-macios/issues/7475
Fixes: https://github.com/xamarin/xamarin-macios/issues/7476
2019-11-21 14:51:31 -05:00
Manuel de la Pena 6a702cb7b9
[Runtime] Enable the -Wsign-conversion on runtime.m files. (#7474)
Enable the flag that was disabled via pragmas and fix warnings.

Continuation of PR: https://github.com/xamarin/xamarin-macios/pull/7405
2019-11-21 09:42:17 -05:00
Manuel de la Pena 8f6a10f3bd
[Runtime] Enable the -Wsign-conversion on monotouch-debug files. (#7459)
Enable the flag that was disabled via pragmas and fix warnings.

Continuation of PR: https://github.com/xamarin/xamarin-macios/pull/7405
2019-11-20 13:42:51 -05:00
Marius Ungureanu 5913bd1807 Add IComparable<T> to NSString (#7468)
Fixes #5522
2019-11-20 07:45:13 -05:00
Manuel de la Pena 4aa269bbdb
[Runtime] Enable the -Wsign-conversion on monotouch-main.m files. (#7457)
Enable the flag that was disabled via pragmas and fix warnings.

Continuation of PR: https://github.com/xamarin/xamarin-macios/pull/7405
2019-11-18 08:36:47 -05:00
Manuel de la Pena 481d5ef9ab
[Runtime] Enable the -Wsign-conversion on trampolines-x86_64.m files. (#7455)
Enable the flag that was disabled via pragmas and fix warnings.

Continuation of PR: https://github.com/xamarin/xamarin-macios/pull/7405
2019-11-15 14:34:36 -05:00
Manuel de la Pena af196f1c72
[Runtime] Enable the -Wsign-conversion on trampolines.m files. (#7447)
Enable the flag that was disabled via pragmas and fix warnings.

Continuation of PR: https://github.com/xamarin/xamarin-macios/pull/7405
2019-11-15 10:39:38 -05:00
Rolf Bjarne Kvinge 7caf1fbb04
[generator] If forcing a managed type, we must do so even if there's another managed instance of an incompatible type. Fixes #7441. (#7445)
If forcing a managed type for a particular native handle, we must ensure we're
always successful.

This means creating another managed instance even if there already is an
existing instance for the native handle. This is not optimal, but the
alternative is worse: some functionality can be completely broken otherwise
(such as NSSavePanel⁄NSOpenPanel may stop working).

If creating multiple managed instances for the same native handle ends up
being too problematic, we'll probably have to add full support for this
scenario (see #7442).

Fixes https://github.com/xamarin/xamarin-macios/issues/7441.
2019-11-15 08:16:06 +01:00
Manuel de la Pena 5e2231d533
[Runtime] Enable the -Wsign-conversion on trampolines-varargs files. (#7428)
Enable the flag that was disabled via pragmas.

Continuation of PR: https://github.com/xamarin/xamarin-macios/pull/7405
2019-11-14 14:35:27 -05:00
Sebastien Pouliot 387730516f
[runtime] Clarify size in marshal_return_value calls (#7439)
Static analysis (and any manual review) is easily confused by
`sizeof (id)`, `sizeof (self)` and `sizeof (*self)` when another
argument is `self` and can report false positives (or be missed
or misinterpreted by humans).

This simply clarify that `|` is an encoded pointer and will
be the size of the pointer (varying by architectures)
2019-11-14 14:50:34 +01:00
Manuel de la Pena d83e9687a6
[Tests] Centralized the endpoints for the different network tests. (#7418)
Use a single point where the different enpoints can be found so that
if they need to be updated (server issues or other) it is a simple
change that will affect all tests in monotouch-tests
2019-11-14 05:45:33 -05:00
Manuel de la Pena dc0a877fed
[Runtime] Enable the -Wsign-conversion on trampolines-invoke.m (#7429)
Enable the flag that was disabled via pragmas.

Continuation of PR: https://github.com/xamarin/xamarin-macios/pull/7405
2019-11-14 05:44:51 -05:00
Manuel de la Pena eedf342abb
[Runtime] Add extra flags from preventing us to add code with warnings. (#7432) 2019-11-14 05:44:13 -05:00
Sebastien Pouliot 089ca17e5a
[runtime] Catch and log exceptions in ObjC++ destructor (#7421)
`xamarin_notify_dealloc` can throw an exception (depending on the mode
used).

Throwing exception in a destructor is problematic in [Obj]C++ and can
abort the application. That might be fine in some cases but there's
not much point in doing so when we're about to forget everything about
that specific object.
2019-11-14 09:30:48 +01:00
Manuel de la Pena de14b5a583
[CoreFoundation] CFBundle.GetAll better thread safe. (#7425)
The initial solution fixed the rance condition in which the index
changed, but that did not guarantee that we would get the correct
bundles. We now clone the CFArray (which also clones the callbacks set
to the array) and iterate over it to make sure Apple does not do evil
tings while we are iteraing.

Better Fixes: https://github.com/xamarin/maccore/issues/940
2019-11-13 17:19:16 -05:00
Rolf Bjarne Kvinge d94d2f1ae6
[Jenkins] Make it possible to trigger device tests from PRs built on internal Jenkins. (#7424) 2019-11-13 22:07:20 +01:00
Sebastien Pouliot c46d9857a4
[runtime] Filter isblank input to 8 bits values (#7420)
Help static analyzer by clarifying that only `char` will be given to
`isblank` so it does not look like it could be used to index an array
and gets out of bounds (important since this is user supplied values).

Digging down into `isblank` will get you to
> Using tainted variable _c as an index to array _DefaultRuneLocale.__runetype.
2019-11-13 20:46:20 +01:00